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

Go语言第一课

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

    形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。

    实参出现在主调函数中,进入被调函数后,实参变量也不能使用 

    形参和实参的功能是作数据传送。发生函数调用时, 主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送

    1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元。因此,形参只有在函数内部有效。 函数调用结束返回主调函数后则不能再使用该形参变量。 

    2.实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。 

    3.实参和形参在数量上,类型上,顺序上应严格一致, 否则会发生类型不匹配的错误。 

    4.函数调用中发生的数据传送是单向的 即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。

    5.当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变

    如果函数的参数是指针类型变量,在调用该函数的过程中,传给函数的是实参的地址,在函数体内部使用的也是实参的地址,即使用的就是实参本身。所以在函数体内部可以改变实参的值。

    查看全部
  • 注意,当一个函数中存在多个defer语句时,它们携带的表达式语句的执行顺序一定是它们的出现顺序的倒序。

    查看全部
  • 哎 这个老师喜欢用很复杂的话来说一件很简单的事情 绕来绕去的很好玩吗  这样很费脑筋啊 看一句话看半天

    例如 “对照这张表格,我们就能够解释上面那条for语句打印出的内容了,即:每次迭代出的第一个值所代表的是第二个字符值经编码后的第一个字节在该字符串经编码后的字节数组中的索引值。请大家真正理解这句话的含义。”

    说的就是字符经过UTF-8编码之后的索引 

    该字符所占第一个字节的位置就是该字符的索引值啊 ~~为什么要说那么绕 要不是学过C我真看不懂。

    查看全部
    1 采集 收起 来源:Go语言-for语句

    2018-04-17

  • 工作区和GOPATH目录

    查看全部
  •  携带range子句的for语句还可以应用于一个通道值之上。其作用是不断地从该通道值中接收数据,不过每次只会接收一个值。注意,如果通道值中没有数据,那么for语句的执行会处于阻塞状态。无论怎样,这样的循环会一直进行下去。直至该通道值被关闭,for语句的执行才会结束。

    和channel相关

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

    2018-04-11

  • 变量
    查看全部
    0 采集 收起 来源:Go语言特点

    2018-04-10

  • recover调用一定要在发生异常(panic调用)之前

    控制权交到调用包含recover语句的函数的函数,包含recover的函数后面的代码都不会执行了

    查看全部
    1. default语句的执行顺序和它放的位置无关

    2. fallthrough语句只能贯穿一条case语句,而不是所有

    3. fallthrough语句放在最后一个case语句中会编译出错

    查看全部
  • Go语言定义指针的方式与C/C++不同,*需要放在类型之前,如:

    var p *int        // Golang,自动初始化为nil
    int* p = null;    // C/C++


    查看全部
  • 切片操作方括号中的第三个参数也是索引值,也就是说容量最多可以到达底层数组(切片)的哪个位置,举个例子:

    number := [...]{1, 2, 3, 4, 5, 6, 7, 8, 9}

    slice := number[ 1 : 3 : ]

    上面切片方括号中的1,3,5表示的都是索引,即是说:slice切片的元素从number数组中索引为1的元素开始,到索引为(3-1=2)的元素结束,容量到索引为(5-1=4)的元素结束。

    所以:

    slice的长度 = 3 - 1 = 2

    slice的容量 = 5 - 1 = 4

    查看全部
  • 数组也可以被切片,返回的是切片

    新切片的容量 = 原切片(数组)的容量 - 切片起始下标

    例:

    var array = [5]int  //cap(array) = 5

    var slice = array[: 4]

    那么:

    cap(slice) = cap(array) - 2 = 5 -2 = 3

    查看全部
  • //声明数组的三种方式:

    var array1 = [5]int

    var array2 = [5]int {1, 2, 3}

    var array3 = [...]int {1, 2, 3, 4, 5}

    //注:方括号中必须写明数组长度或者...,否则定义的将是切片而不是数组

    查看全部
  • //变量赋值的方式

    num1 := 1

    num2, num3 := 2, 3

    var num4 = 4

    var num5 int = 5

    var num6, num7 = 6, 7

    var num8, num9 int = 8, 9

    var (

        num10 = 10

        num11 = 11

    )

    var (

        num12 int = 12

        num13 int = 13

    )

    //注:const和var的用法完全一样

    查看全部
  • 其实标识符可以是下划线开头的,但数字是真的不可以。

    查看全部
  • <img src="https://img1.sycdn.imooc.com//5abf67490001a13a05000398.jpg" title="" alt="https://img1.sycdn.imooc.com//5abf67490001a13a11620924.jpg" />
    查看全部

举报

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

微信扫码,参与3人拼团

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

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