加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

go语言学习--语法糖

发布时间:2021-07-06 06:14:01 所属栏目:大数据 来源: https://www.jb51.cc
导读:语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,

语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。

语法糖在go中如何体现的呢?

1、比如说参数不定的情况

func myFunc1(args  ...int){
    for _,arg:=range args{
        fmt.Println(arg)
    }

}
func myFunc2(args  []range args{
        fmt.Println(arg)
    }

}

myFunc1中就是使用的语法糖,按照它的内部机理来说,…type本质上是一个数组切片,也就是[]type,这也就是上面的参数args可以使用for循环来获取每一个传入的参数。
虽然myFunc2也实现了不定参数的功能,但是使用起来远不是那么简单。打个比方把
对于myFunc1来说调用它如下代码:
myFunc1(2,3,4)
而对于myFunc2来说调用它却是如下代码:
myFunc2([]int{2,4}),
2、在赋值方面的体现

:= 只有在左侧有未定义变量时才能使用(有定义的变量也可以)?
:= 只进行语义上的检查,循环内也可以使用,第一次之后的效果和=相同?
:= 和 = 都要求左右的值和变量一一对应,不会截断?
特殊情况,map、chan、类型推定可以返回一个值,也可以是两个值?
当map中该键不存在时,总是返回零值和false,否则后者返回true?

当chan关闭以后,总是返回零值和false,否则后者返回true

?

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读