很多编程语言用 end 作为区块结束符,而放弃花括号是因为ASCII 括号太少了, 没办法中的办法。你要么选缩进语言,省一种括号,要不就难办了。首先满足函数写法 f(x)。
一、为什么很多编程语言用 end 作为区块结束符,而放弃花括号
很多编程语言用 end 作为区块结束符,而放弃花括号是因为ASCII 括号太少了, 没办法中的办法。你要么选缩进语言,省一种括号,要不就难办了。首先满足函数写法 f(x)。
考虑函数定义写法
function f<T>(x) {
// 你 Tokenize & Lexer 很强大也不是不可以
}
如果你写不出丧心病狂的 Parser, 那就 pass.
要么你接受不一致性, 调用的时候写 f::<T>(x)
function f(T)(x) {
// 函数返回函数咋办
}
所以你的语言没法 Curry, 没法返回闭包吗?
注意 f 可以使是个闭包, 然后 f(x) 返回个函数, f(x)(y) 返回闭包
pass
function f[T](x) {
}
你说的对, 但是 Julia 是一款由 Jeff Bezanson 创建的高性能科学计算语言, 你将扮演一位程序员没日没夜的把公式改写成代码.
科学计算里 [] 更多的表达 index 和 slice。
function f{T}(x) {
// 俩括号, 纯纯的异种语法
}
// 考虑泛型上界, 你可能得写
function f{
T <: U + L <: T
} (l, t, u) {
t < u && u < l
}
这写法, 多少有点奇葩.
function f{T}(x):
end
没办法中的办法了, 顶多加个冒号更像 python 一点.
说实在的, unicode 泛型不错, 反正你 julia 也是一吨 unicode 运算符了, 不差这一个.
function f⟬T⟭(x){
}
调用也是 f⟬T⟭(x), 岂不美哉
要不你就不要泛型。
延伸阅读:
二、golang丰富的标准库和第三方资源
Golang的标准库十分强大,甚至于包含了Web开发的接口,模板等等,这些都是C语言不可比拟的,经过几年的发展,Golang也拥有了大量的使用人群,所以第三方资源日趋丰富和完善。
以上就是Golang在C基础上的一些进步,总的说来,经过一段时间对Golang的使用,感受非常好。从Golang可以看到很多C语言的影子,但是很多C开发时作为编码规范和思想的东西,在Golang中已经将其作为语法进行了规范和限制,减少了编码时需要考虑的问题量,同时保留了C语言的灵活性,Golang丰富的标准库和第三方资源,增加了使用Golang进行开发的手段。
但是,不得不承认,Golang不适合作为入门级的编程语言,Golang中语法的很多闪光点,需要结合多种编程语言的对比才能发现,如果你有丰富的编程经验,使用Golang时会发现,当时关注的编码问题,Golang都已经考虑到了,这时你会感叹Golang的设计。毕竟作为新生代的编程语言主力,不应该再出现老一辈语言的问题了,取长补短,正是Golang应该做的。