Go 语言简单基础介绍

Go

简单介绍Go

Go的出名,估计真的是靠“爹”。反正人家有个好爹,这是毋庸置疑的。有时候我会想,为啥要用GO,其实Go能做的事情,Java也能做,到现在我也没有想明白。可能Go的存在就是为了那些C/C++想快速转到互联网行业的一个中转语言吧。说实话,对于指导Go里面有指针的第一时间。心中就是千万匹草泥马。但是草归草,生活的继续,还是得硬着头皮学。我有一个心理目标,既然学,就要分清楚学习到什么程度,以致于来花费多少时间。没错,对于Go,我的想法是能用,并且能稍微的用好一点。

Hello Go

一切语言的开始都是 Hello,World

1
2
3
4
5
6
7
package main

import "fmt"

func main(){
fmt.Println("Hello,World")
}

上面就是 main.go 文件。go 语言的文件后缀都为 .go。这个基本上每个语言都有这个特性啊。哈哈。

第一行:go 语言包管理机制,所有开始必须有个包名“自报身份”。
第二行:import 导入需要用到包
第三行:func main(){} 定义一个 main 函数。func 定义一个函数,main函数是可以运行的入口

Go 语法

  • 定义一个 variable 的string变量

    1
    2
    3
    var variable string
    var variable = "string"
    variable := "string"
  • 大小写,变量可见性

    1
    2
    var Variable  string    //外部可见
    var variable string //外部不可见
  • 函数定义

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    func Amethod(a int, b string)(int,error){//外部可见,传入a,b两个参数,返回int,error两个类型的参数
    //do something
    return v1,err1
    }

    func amethod(a int, b string)(int,error){//外部不可见,传入a,b两个参数,返回int,error两个类型的参数
    //do something
    return v1,err1
    }

    intResult,err := Amethod(1,"str") // 调用Amethod方法,并且定义intResult,err来作为接受返回值的两个变量
  • 流程控制

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    if a>0{ 
    //do thing
    }

    for i := 0;i < 10; i++ { // 常见for循环
    //do thing
    }
    for 1==1{ // 无限死循环
    }

    var aSlice := []int{1,2,3,4}
    for idx,val := range aSlice{// 循环slice数组,range关键字
    fmt.Print(idx,val);
    }

    switch
    continue
    break
    go 开启协程

其实一开始写Go我是拒绝的,有几次都感觉,Java用起来多爽啊,Go这东西简直反人类。最近用着基本上也就没有抱怨了,很多时候都是怕自己做不好,还有自己的舒适区。其实刚毕业的一两年都是一个软件开发者最重要的时间吧。我16年毕业,半年Java开发后跳槽,说实话,如果不是女朋友来深圳的话,我可能真的会在易宝支付做下去吧。来深圳找工作并不是很顺利,很多时候自己心理压力大,也有一点事自己学的
不足。一方面还没有做满一年就跳槽,怕留给公司不好的影响,另一方面,半年的时间也就了解了一些基本的支付业务,并没有实际的开发到少东西。而来到新公司,第一件事情就是做一个自己不熟悉的东西。那个时候真的是一边做,也有一遍流泪的。越想越心酸,能力不足,眼前又痛苦。想想别人可以挑公司,而我还被公司挑来挑去。而现在的公司又每天都是做着我不熟悉的Go开发。那个时候心里憋屈啊。 在同事们看来,我从进公司第一天到完成Go开发组长的任务总共用了三天的时间,并且组长也是相当满意任务的完成度。只是他们不知道,我心里是多苦。从熟悉的Java转到Go,我真的是心里一万遍打死了自己,责怪自己。我的同事对我很好,给了我很大的帮助。我真的非常谢谢他们。完成任务后的第一天,我就开始做实际的生产上的项目了。那段时间什么都不知道,什么都不懂。我有时候真的都会默默流泪。但是不管怎样,如果你没能力,那么你只能好好的做好你手中的事情,硬着头皮,最终也是做完了。我很讨厌这种不能自己决定选择的生活,而我不管怎样,也不能放弃。chenzhijun,加油,每天努力一点点。

坚持原创技术分享,您的支持将鼓励我继续创作!