php从入门到放弃表情,Lite语言——从入门到放弃(一)
Lite 是我設計開發的一門編程語言,主要關注如何設計更簡潔的語法,經過兩年改進,現在只需要很少的代碼量就可以表達現代編程語言的大部分邏輯,去掉了關鍵字設計。
目前仍在持續改進中,歡迎到 Github 提意見,走過路過別忘了點個 Star 。
變量聲明
在 Lite 中,變量聲明的格式為
# id type #
a int
是的,不需要關鍵字開頭,只需要用空格分割,后面部分就是類型。
也不需要 ; 結尾,編譯器會根據特定換行規則斷句,除非想在一行內寫多個語句,就可以加上 ;。
Lite 是一門強類型語言,大部分時候都需要明確的類型,但是有豐富的自動推導特性節省代碼。
賦值
一句話帶過。
# id = value #
a = 0
聲明時初始化
把前面兩個連起來就可以了。
# id type = value #
a int = 0
Lite 具有自動推導特性,所以類型可以省略,然后就和賦值語句一樣了。
編譯器會分析是否存在變量,如果變量不存在就會自動聲明。
a = 0 # 創建變量 #
a = 1 # 賦值 #
注釋
Lite 使用 # 來表示注釋,用前后兩個包住內容即可。
#
注釋
注釋
注釋
#
基礎類型
快速帶過
a int = 100000000 # i8 = sbyte,i16 = short,int = i32 = int,i64 = long #
b num = 3.141592653 # f32 = float,num = f64 = double #
c bool = true # bool = bool #
d str = "hello" # str = string #
e any = 0 # any = object #
字符串插值
可能在其它語言里我們經常會圖方便使用 + 拼接字符串。
var txt = "hello" + integer.ToString() + "world!";
現代語言會提供特殊的插值語法加糖。
var txt = "hello $integer world!";
Lite 更直接一些,省略掉 + 就可以達到插值效果,前后被字符串包圍的值會被自動插值。
txt = "hello" integer "world!"
基本操作符
快速帶過
a = 4
b = 2
c = a + b # 加 #
c = a - b # 減 #
c = a * b # 乘 #
c = a / b # 除 #
c = a % b # 取余 #
c = a ** b # 冪 #
c = a // b # 根 #
c = a %% b # 對數 #
d = false
d = a == b # 等于 #
d = a >< b # 不等于 #
d = a > b # 大于 #
d = a >= b # 大于等于 #
d = a < b # 小于 #
d = a <= b # 小于等于 #
d = true & false # 邏輯與 #
d = true | false # 邏輯或 #
d = ~true # 邏輯非 #
基本集合類型
數組類型表示為 []type ,用 []type{ value, value, value...} 包裹元素初始化。
a []int = []int{1,2,3,4,5}
一般情況下可以自動推導類型,使用 {value,value,value...} 直接初始化即可。
a = {1,2,3,4,5}
字典類型表示為 [type]type,用 [type]type{ [value]value, [value]value, [value]value...} 包裹元素初始化。
b [str]int = [str]int{ ["1"]1, ["2"]2, ["3"]3 }
一樣可以使用自動推導類型。
b = { ["1"]1, ["2"]2, ["3"]3 }
使用索引語法 id[value] 即可取得某個索引對應元素的值。
v = a[0] # 數組索引從 0 開始 #
v = b["3"]
選擇結構
Lite 的選擇結構很簡單,不需要使用 if,else,elif,switch,select,case,default,break這些關鍵字。
只需要用 ? 和指定的位置規則就可以進行多種操作。
純分支結構用來對單純的條件進行匹配,只會進入條件成立的分支 (if else)
a = 1
? a == 1 {
# 執行邏輯 #
} a == 2 {
# 執行邏輯 #
} _ {
# 當上面條件都不滿足時執行邏輯 #
}
? true {
# 執行邏輯 #
}
值匹配結構用來對某個值進行多條件匹配,只會進入條件成立的分支 (switch)
a = 1
a ? 1 {
# 執行邏輯 #
} 2,3,4 {
# 合并多個條件執行邏輯 #
} _ {
# 當上面條件都不滿足時執行邏輯 #
}
循環結構
Lite 的循環結構很簡單,不需要使用 for,foreach,while,loop,in,of,range 這些關鍵字。
只需要用 @ 和指定的位置規則就可以進行多種操作。
集合循環用來對集合進行遍歷 (foreach)
a = 0
arr = { 1,2,3,4,5 }
id @ arr { # 取出單個元素,定義為變量 id #
a += id
}
如果需要同時取出元素的索引和值,可以使用 [id]id 語法。
[index]value @ arr {
# 執行邏輯 #
}
計數循環用來對指定數字集合進行遍歷,比如從0數到100(for)
計數需要引入特殊的范圍表示語法 [start < end, step],step為步長,可以省略,默認為1。中間的操作符可以指定 >,>=,
a = 0
i @ [0 < 100] { # 0 到 99 #
a += i
}
i @ [0 <= 100] { # 0 到 100 #
a += i
}
i @ [100 > 0, 2] { # 100 到 1,步長為 2 #
a -= i
}
條件循環,滿足條件時進行繼續循環 (loop)
@ a > b {
# 執行邏輯 #
}
無限循環,很簡單,只用 `@` 就可以了 (while)
@ {
# 執行邏輯 #
}
結尾
以上是 Lite 最基礎的語法結構,對比起其它語言的語法是否更簡潔呢?
下一次我們會來看看如何用簡潔的語法表達函數和數據結構。
有疑問加站長微信聯系(非本文作者)
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的php从入门到放弃表情,Lite语言——从入门到放弃(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Markdown:数学公式(4)
- 下一篇: 现代谱估计:多窗口谱重建