go语言学习总结 | 青训营

86 阅读2分钟

在go语言中,当出现了需要将不同类型的数据进行转换,可以进行直接转换,基本的语法为:(Type)b,b为要转换的数据

在go中,基本数据类型和数组默认为值传递,即对值进行copy,然后对copy进行修改,在函数内修改是不会影响原来的值的。对此,若要对数据的原来的值进行修改就要进行一些特殊的操作了,即对传入那些数据的地址,针对其地址进行修改,这样的话,才能够直接的影响到数据本身,对于函数可以传入&name来达到目的,函数以外的地方可以使用指针来操作变量

go语言支持可变参数,即在go语言中,对于函数可传入的参数可以不做限制,以下为例子

func sum(args...int)sum int{ }

关于键盘输入,一共有两个方法:

1fmt.Scanln(&name)当程序执行到此处时,fmt.Scanln(&name)会停止在此处,等待用户输入,并回车。

2fmt.Scanf("%s %d %f %t",&name,&age,&sal,&ispass)这种方式可以按指定的方式进行输入

关于闭包,闭包就是一个函数和与其相关的引用环境组合的一个整体

func addupper() func(int) int{
    var n int =10
    return func(x int)int{
        n=n+x
        return n
    }
}
func main(){
f:=addupdate()
fmt.println(f(1)) //n=11
fmt.println(f(1)) //n=12
fmt.println(f(1)) //n=13
}

返回的是一个匿名函数,但是这个函数引用到了函数外的n,因此这个匿名函数就和n形成一个整包,构成闭包

对于原码、反码、补码:

(1)对于有符号的数字而言其二进制最高位数就是符号位,0表示正数,1表示负数

(2)正数的原码,反码,补码都一样

(3)负数的反码就是其符号位不变的情况下,其他符号位去相反数

(4)负数的补码是它的反码+1

(5)0的反码。补码都是0