go语言学习:day 1 go语言基础 青训营笔记

83 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第一天

今日课程重点内容

go语言的语法基础

本人原先比较熟悉的语言是java和c,那么我就从c,java这两种语言开始比较学习。 像王老师所说go语言很多语法和c语言很像,但是也有不一样的,那么我就从不一样的地方开始记录

知识点介绍

一 go语言判断语句与变量声明

比如if和变量声明

C语言的是这样的

int i = 12
if(i<13){
......
}

而go语言是这样的

maxNum := 100
if maxNum > 99 {
.......
}

在讲变量声明前,我百度了一下,go语言是强类型语言,因此它的变量只要定义了就不可以再改变

还有就是对于go语言的声明不止一种

第一种方式、var

var name string

结构为var+变量名+类型

name = "s"

像这样赋值

//根据赋值自动判断类型
var p = name

因为name是字符串类型,所以p也是同类型

//多变量声明,int类型不赋值自动赋值为0,比如d e f
var a, b, c = 1, 2, 3
var d, e, f int

一次声明多个类型不同的变量

//类型不同的多个变量,难看的要死
 var (
  k int
  l string
 )

//这样好看
var m, n, o = "a", 1, true

方式二、:=

//直接声明并赋值(必须是初次声明才有冒号)
p2 := "as"
// 多个变量一次性声明并赋值
h, i, j := 1, 2, 3

二 go for循环

然后for循环也是,对于c语言可能有两种方式进行loop但是对于go语言只有一种就是for循环

c语言如何就不再赘述,go语言for循环总体来说有三种

方式一

和 C 语言的 for 一样:

for n:0 ; n<10 ; n++ { }

方式二

和 C 的 while 一样:

for condition { }

方式三

和 C 的 for(;;) 一样:

for { }

三 swich语句

和C语言swich语句不同的点就是go语言的判断逻辑是可以任意的,不是只能int,并且c语言的swich分支需要break,然而go语言并不需要 ,如下面这段代码

a:2
switch a {
    case 1:
        ...
    case 2:
        ...
    default:
        ...
}

四 数组

Go 语言数组声明需要指定元素类型及元素个数,语法格式如下:

var a [SIZE] int

如果数组长度不确定,可以使用 ... 代替数组的长度,会根据元素个数自行推断数组的长度:

var b = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
或
b := [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}

如果设置了数组的长度,我们还可以通过指定下标来初始化元素:

//  将索引为 13 的元素初始化
b := [5]float32{1:2.0,3:7.0}

五 函数和指针

对于go语言的函数可以有多个返回值,并且go语言传值的参数的类型应该写在变量后面而不是前面如下面这段代码:

func swap(x, y string) (string, string) {  
   return y, x  
}  
  
func main() {  
   a, b := swap("Google", "Runoob")  
   fmt.Println(a, b)  
}

go语言的指针用处比较小,最主要的作用函数传值

其他不同

这是在网上搜索出来的一个c语言和语言不同的总结文章,希望可以帮到你。

hyperpolyglot.org/c

课堂总结

go语言基础感觉没啥太大的难度,只是今天配置go语言环境的时侯花了蛮多时间的

总结下来就是三步走

一 下载语言并且配置全局变量

图片.png

在cmd上有这样的显示就ok

二 下载goland

三 main函数要在main包里要不然会报错

图片.png

引用参考

菜鸟go语言基础教程

www.runoob.com/go/go-funct…

c语言和go不同的总结文章 hyperpolyglot.org/c