做个笔记怕自己忘记了,必要的组件:
array, hash, function, arithmetic, bit arithmetic, comment, assignment, contrl expressions(if-else, while(break, continue), and, or), global variable
详细补充一下:
- 赋值:
= -= += *= /= %= **=
(类型推断用Crystal的就好。。) - 函数(注释):
func foo(n)
return func () return n += 1 end # 单行注释
end
func bar(pa=1, pb=2)
end
- 算数运算:
+ - * / % **
(这些都和Crystal是一样一样的,毫无压力,下同) - 位运算:
& | ^ ~ << >>
- 逻辑运算:
and or not
- 数组:
foo = {1, "hi", 0.1}
调用foo[0] #=> 1
(不支持类型,实现成无类型的,下同) - 字典:
foo = {"a": 1, "b": 2}
调用foo["a"] #=> 1
- 控制流(只保留最基本的控制流,其它的用语言本身实现):
- if-else(switch-case可以在其之上实现,就省得parse了)
if true
# do something
else
# another thing
end
- while(continue, break)
while true
# do something
end
- 全局变量:
global a = "hello, world"
- yield:
yield
是的!看起来parse成Crystal很简单所以加上了! - 基本类型:
- 整型(Int32)
- 浮点型(Float64)
- 字符型(String)
- 布尔型(
true
,false
)
明天就可以整理出所有的保留字了。
网友评论