golang 初识小结

baidang201 · · 1396 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

1 为什么学

    工作需要,未来投资


2 golang的特点

  设置为服务端语言,简洁,用来替换C语言。


3 有意思的特性

《1》 函数的可变参数

《2》变量函数首字母大写是公共的,小写是私有的 ;

《3》中文命名的变量和函数

《4》延迟执行,离开作用域后执行。关键字 defer(再也不担心忘记释放语句)(函数返回时,能再次修改返回值)

《5》函数的强制云括号格式化,必须在函数名那一句的右边。不这样还编译报错。


4 平凡语言特性

自动垃圾回收
更丰富的内置类型
函数多返回值
错误处理
匿名函数和闭包
类型和接口
并发编程
反射
语言交互性


5 和c的比较

(##总的说,比C语言省略了圆括号,分号; 类型名靠后;)

1 头文件引用 #include <***>   vs   import "fmt"

2 函数变量类型定义

int myType::funcName(int a, int b, string c)
{
函数体
return r //只能单个返回值
}

vs


func (p myType ) funcName ( a, b int , c string ) ( r , s int ) {
函数体
return 语句
}
func :      关键字
(p myType): 表明函数所属于的类型对象!,即为特定类型定义方法,可以省去不写,即为普通的函数 (这里我们主要讲解 普通的函数)
函数名:
参数:       (可以不声明)
返回值:    (可以不声明)
函数体: 

3 变量赋值

int a = 3;   vs           var a int = 3   或者  a:= 3(仅在函数体内才能这么写,自动类型推导)


4 for的比较

int i;
for(i =0; i<10; i++)
{
}

vs


for i:=0; i<10; i++ {
}

【注 foreach】

var pow = []int{1, 2, 4, 8, 16, 32, 64, 128}

for i, v := range pow {
fmt.Printf("2**%d = %d\n", i, v)
}

//_作为哑元,占位用

for _, value := range pow {
fmt.Printf("%d\n", value)
}

5 while 的比较

while(i<10)
{
}


vs


for i<10 {
}

       【注】 死循环为

for {
}


6 if比较

if( x > 0)
{
}


vs


if x>0{
}

【注】 if 语句可以在条件之前执行一个简单语句。if v := math.Pow(x, n); v < lim {


7 if else比较

if(t.Hour()<12)
{
j = 2;
}
else if( t.Hour() < 17)
{
j = 3;
}
else
{
j=4
}


vs


switch {
case t.Hour() < 12:
j = 2
case t.Hour() < 17:
j = 3
default:
j = 4
}


8 switch比较

    switch(x)
{
case 1:
case 2:
xxx;
i = 3
break;
case 3:
j = 3
break;
default:
break;
}

vs 

switch x{
case 1:
fallthrough
case 2:
i = 3
case 3:
j = 3
default:
break;
}


9 动态数组 vector vs  slice


10 




有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:baidang201

查看原文:golang 初识小结

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1396 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传