• 首页
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案
目录

为什么很多编程语言用 end 作为区块结束符,而放弃花括号

很多编程语言用 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应该做的。

一站式研发项目管理平台 PingCode

一站式研发项目管理平台 PingCode

支持敏捷\瀑布、知识库、迭代计划&跟踪、需求、缺陷、测试管理,同时满足非研发团队的流程规划、项目管理和在线办公需要。

相关文章

golang与C语言相比最重要的改进是什么

百科

C++中的friend究竟有什么用

百科

为什么 golang 代码里有很多单字母的变量

百科

Python 在 Linux 里面有哪些应用

百科

为什么编程语言中没有未知数

百科

Rust中常量为什么用let不用const

百科

C#的方法名或者属性名首字母不大写会有什么影响

百科

什么是高级编程语言

百科

Python中的while循环是什么

百科

C#编程语言里.sln文件是做什么用的

百科