为了账号安全,请及时绑定邮箱和手机立即绑定

Go语言第一课

郝林 架构师
难度入门
时长 3小时10分
学习人数
综合评分8.57
92人评价 查看评价
9.0 内容实用
8.2 简洁易懂
8.5 逻辑清晰
  • 好难,感觉好难用

    查看全部
  • 本节要点: 如果对一个 nil channel 进行读和写操作会进入永久阻塞,

    查看全部
  • var numbers3 = [5]int{1, 2, 3, 4, 5}
    var slice1 = numbers3[1:4]

    请注意第二条赋值语句中在“=”右边那个部分。切片表达式一般由字符串、数组或切片的值以及由方括号包裹且由英文冒号“:”分隔的两个正整数组成。这两个正整数分别表示元素下界索引和元素上界索引。

    在本例中,切片表达式 numbers3[1:4] 的求值结果为[]int{2, 3, 4}。可见,切片表达式的求值结果相当于以元素下界索引和元素上界索引作为依据从被操作对象上“切下”而形成的新值。注意,被“切下”的部分不包含元素上界索引指向的元素。

    查看全部
  • 原生支持并发编程



    查看全部
  • errors.New是一个很常用的函数。

    查看全部
  • 请注意,如果一条select语句中不存在default case, 并且在被执行时其中的所有case都不满足执行条件,那么它的执行将会被阻塞!当前流程的进行也会因此而停滞。直到其中一个case满足了执行条件,执行才会继续。我们一直在说case执行条件的满足与否取决于其操作的通道在当时的状态。这里特别强调一点,即:未被初始化的通道会使操作它的case永远满足不了执行条件。对于针对它的发送操作和接收操作来说都是如此。

    查看全部
  • 只能用于通道

    查看全部
  •    另外,还有一点需要大家注意,我们在基底类型的值上仍然可以调用它的指针方法。例如,若我们有一个Person类型的变量bp,则调用表达式bp.Grow()是合法的。这是因为,如果Go语言发现我们调用的Grow方法是bp的指针方法,那么它会把该调用表达式视为(&bp).Grow()。实际上,这时的bp.Grow()(&bp).Grow()的速记法。

    查看全部
  • 只要我们把Grow变回指针方法就可以解决这个问题。原因是,这时的person代表的是p的值的指针的副本。指针的副本仍会指向p的值。另外,之所以选择表达式person.Age成立,是因为如果Go语言发现person是指针并且指向的那个值有Age字段,那么就会把该表达式视为(*person).Age。其实,这时的person.Age正是(*person).Age的速记法。

    查看全部
    0 采集 收起 来源:Go语言-指针

    2018-06-10

  • 的指针方法

    查看全部
    0 采集 收起 来源:Go语言-指针

    2018-06-10

  • 是典型的无侵入式的接口实现方法。

    查看全部
    0 采集 收起 来源:Go语言-接口

    2018-06-10

  • - 当*出现在一个类型之前(如*Person*[3]string)时被视为一个符号

    - 类似C语言

    查看全部
    0 采集 收起 来源:Go语言-指针

    2018-06-02

  • //键入的数>通道长度,timeout

    //直接输出通道,不接收;为地址

    //cc := <- ch3 接收的值大于有的数,timeout


    查看全部
  • slice(1:3)
    前面的下标从0开始

    后面的下标从1开始

    查看全部
  • go命令教程:https://github.com/hyper-carrot/go_command_tutorial

    查看全部
    1 采集 收起 来源:本章总结

    2018-05-24

举报

0/150
提交
取消
课程须知
本课程的目的是带领大家入Go语言的门,然后再猛推一把!需要一些Linux Shell的基础,不熟悉Linux的童鞋,可以先去《Linux达人养成计划Ⅰ》中修炼一下~~
老师告诉你能学到什么?
1、怎样使用Go语言编程 2、怎样才算会用Go语言编程 3、怎样运用那些Go语言的特性去编程 4、Go语言的那些特性的实际益处在哪儿

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!