golang了解
发布时间:2020-12-16 18:32:29 所属栏目:大数据 来源:网络整理
导读:Go是Google开发的一种编译型,可平行化,并具有垃圾回收功能的编程语言。 第一点: package main func main(){ print("HelloWorldn") } #includestdio.h void main(){ printf("helloworldn"); } 跟C一样,go 也需要一个 main函数; 不同: 函数多了一个关
Go是Google开发的一种编译型,可平行化,并具有垃圾回收功能的编程语言。 第一点:
跟C一样,go 也需要一个
main函数;
不同:
变量类型接下来我们看看变量类型吧。go 跟c差不多。有明确的变量类型, 跟javascript比起来都是var 根据运算确定类型,感觉效率总是有问题;有时候甚至自己也不知是什么类型。
除了第六行,好像其他都不一样。 不同:
好了,来个for循环吧。
代码有点奇怪,也有点不知道什么意思,是的,没有什么目的, 就是想介绍一下 变量的声明,和作用域, 以及for的写法;
嗨是不是有点乱阿。 但是对于咱们这些有基础的老程序员,那有心思去一个一个看说明。 看了好一段,一个程序也写不了。看到后面又把前面的忘了。 好继续; 有这么多, 来冒个泡吧。
1.package main
2.func main(){
3.var a=[...]int{10,25,32,11,6,36,18,22,5,7}
4.//var a[10]int=[10]int{10,7}
5//var a[10]int=[...]int{10,7}
6.fori:=0;i<len(a);i++{
7.forwhile:=i;while<len(a);while++{
8.ifa[i]>a[while]{
9.a[i],a[while]=a[while],a[i]
10.}
11.}
12.}
13.i:=0
14.fori<len(a){
15.print(a[i],"t")
16.i++
17.}
18.}
数组的
初始化有三种,第一中最简单,具体有几个有编译器自己数,减少了不少程序员的负担。至于后两种,必须是10个哦。否则报错;当然如果你的要求就必须是10个,还是写上数字吧,让
编译器帮你检查一下,以防止敲错了!当然还可以写成a:=;
数组可以求长度了,有点像java了。
一直有个梦想, 想定义一个变量叫while,怎么也无法实现, 今天go帮我实现了。go中没有while关键字。只有for。用最少的关键字。 go真为程序员作想。
快看第十行阿。两个变量交换,一句话就完成了,在C中怎么也要三行代码;还有一个中间变量;不是这个是不是一条汇编语句完成的。
虽然没有while, go 也没有忘记我们的习惯, 将两个分号两边的赋值去掉,for就变成while格式了。对于
while(true)则简单了。一个for就完成了。
15,16行为什么不合并呢?自己试试吧。 语法错误哦。go的文档中说++后面,编译器会自动添加分号。
package main
func main(){
var a=[...]int{10,sans-serif">
//var a[10]int=[10]int{10,sans-serif">
//var a[10]int=[...]int{10,sans-serif">
fori:=0;i<len(a);i++{
forwhile:=i;while<len(a);while++{
ifa[i]>a[while]{
a[i],sans-serif">
}
}
}
i:=0
fori<len(a){
print(a[i],sans-serif">
i++
}
}
虽然没有while, go 也没有忘记我们的习惯, 将两个分号两边的赋值去掉,for就编程while格式了。对于
16,17行为什么不合并呢?自己试试吧。 语法错误哦。go的文档中说++后面,编译器会自动添加分号。
五, Array 与 slice 六,len注意点:对于s,用c语言来描述是一个结构体,其中包含了两个元素(str (*uint8), len(int64));其中str指向了真正的字符串;len中记录了字符串的长度; 所以,只有array的长度是直接由编译器得到,而slice,和string的长度则是有变量记录的; 七, 指针通过上面的程序可以发现,modify函数传进去的是s的地址,所以等函数返回后,s所对应的字符串已经更改;而mo函数中的b由于是s的copy,所以虽然在函数中修改了b的值,但是等函数返回后,仍没有效果, 但是有一点需要注意的是,b这个copy中,指示上面的str,len两个变量拷贝了,而实际的字符串只有一份,所以节约了空间,提供了性能; 写这段代码的时候,发现一个细节问题,如果注释掉行13; 在gdb中调试到第10行是,可以使用p s命令和whatis s命令查看s的具体结构,但是如果留有13行,则symble table中的变量变成了&s,在gdb中可以使用i locals查看到该变量,但是如果用p打印该变量,还有待研究。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |