Golang的入门教程(二)

1:Mac环境下搭建开发环境

开发工具GoLand

下载链接: https://studygolang.com/dl

加黑的为推荐版本

GoLand需要登录激活,这里激活你可以选择自己破解或者购买正版!

另外:创建项目是记得配置GOROOT


GOROOT

这样基本的搭建环境就配置好了!

2:编写第一个程序"hello world"

2.1:创建一个main.go
2.2:导入头文件

import "fmt"//导入格式化

func main() {//启动函数
    fmt.Println("hello world")//打印hello world
}

这样第一份代码就写完了!也标志着我们要开始学习Go语言了!

3:Go语言基本语法与使用

数据类型分为
整形:

按长度分为: int8 int16 int32 int64
还有对应的无符号整型:uint8 uint16 uint32 uint64

浮点型:

Go语言支持两种浮点整数:
float32:最大范围约为 3.4e38,可以使用常量定义:math.MaxFloat32
floa642:最大范围约为 1.8e308,可以使用常量定义:math.MaxFloat64

布尔型:

布尔型数据只有true和false
Go语言中不允许将整型强制转换为布尔型,代码如下:
fmt.Println(int(n) * 2)
编译错误,输出如下:
cannot convert n (type bool) to type int
布尔型无法参与数值运算,也无法与其他类型进行转换

字符串:
字符串的值为双引号中的内容,可以在Go语言的源码中直接添加非ASCII码字符,代码如下:

str := "hello world"
ch := "中文"

切片--能动态分配空间
切片是一个拥有相同类型元素的可变长度序列,切片的声明方式如下:

var name []T

其中T代表切片元素类型,可以是整型,浮点型,布尔型,切片,map,函数等.
切片的元素使用"[]"进行访问,在方括号中提供切片的索引即可访问元素,索引的范围从0开始,切不超过切片的最大容量,代码如下:

a := make([]int, 3)//创建一个容量为3的整型切片
a[0] = 1//为切片元素赋值
a[1] = 2
a[2] = 3
字符串也可以按切片的方式进行操作:
str := "hello world"
fmt.Println(str[6:])
代码输出如下:
world

3.1声明变量

    var a int//声明一个整型类型的变量,可以保存整数数值
    var b string//声明一个字符串类型的变量
    var c []float32//声明一个32位浮点切片类型的变量,浮点切片表示由多个浮点类型组成的数据结构
    var d func() bool//声明一个返回值为布尔类型的函数变量,这种形式一般用于回调函数,即将函数以变量的形式保存下来,在需要的时候重新调用这个函数
    var e struct{//声明一个结构体变量,拥有一个整型的x字段
        x int
    }

标准式
var 变量名 变量类型
批量式

var (
a int 
b string
c []float32
d func() bool
e struct{
    x int
    }
)

3.2初始化变量

标准格式

var 变量名 类型 = 表达式
例如:游戏中玩家的血量初始值为100. 可以这样写:
var hp int = 100
这句话中,hp为变量名 类型为int hp的初始值为100

编译器推导类型的格式

例如:
var hp = 100

短变量声明并初始化

hp := 100
//ps:如果hp被声明过再使用":="时编译器会报错.代码如下"
var hp = 100
hp := 100
//编译报错如下
//no new variables on left side of :=
//提示, 在:=的左边没有新变量出现,意思就是":="的左边变量已经被声明了.短变量声明的形式在开发中例子比较多,比如:
conn, err := net.Dial("tcp","127.0.0.1:8080")
//net.Dial提供按指令协议和地址发起网络链接,这个函数有两个返回值,一个是链接对象,一个是err对象.如果是标准格式将会变成:
var coon net.Conn
var err error
conn, err = net.Dial("tcp","127.0.0.1.8080")
 //因此,短变量声明并初始化的格式在开发中使用比较普遍

另外,在多个短变量声明和赋值中,至少有一个新声明的变量出现在左值中,即便其他变量名可能是重复声明的,编译器也不会报错,代码如下:

conn, err := net.Dial("tcp","127.0.0.1:8080")
conn2, err := net.Dial("tcp","127.0.0.1:8080")

3.3多个变量同时赋值

编程最简单的算法之一,莫过于变量交换,传统方法编写变量交换代码如下:

    var a int  = 100
    var b int  = 200
    var t int
    t = a
    a = b
    b = t
    fmt.Println(a,b)
    //但是计算机内存非常"精贵",所以大牛们就发明了另外一种算法
    var a int = 100
    var b int = 200
    a = a ^ b
    b = b ^ a
    fmt.Println(a,b)

    //到了Go语言时,内存不再是紧缺资源,而且写法可以更简单.使用Go的"多重赋值"特性,可以轻松完成变量交换任务;
    var a int = 100
    var b int = 200
    b, a = a, b
    fmt.Println(a,b)

3.4 匿名变量--没有名字的变量

在使用多重赋值时,如果不需要在左值中接收变量,可以使用匿名变量.
匿名变量的表现是一个"_"下划线,使用匿名变量时,只需要在变量声明的地方使用下划线替换即可

func GetData() (int,int) {
    return 100, 200
}
a, _ := GetData()

_, b := GetData()

fmt.Println(a,b)

匿名函数不占用命名空间, 不会分配内存.匿名变量与匿名变量之前也不会因为多次声明而无法使用!

入门教程(一):https://www.jianshu.com/p/de26de7ca907

后续会继续更新~~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,864评论 6 494
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,175评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,401评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,170评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,276评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,364评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,401评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,179评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,604评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,902评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,070评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,751评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,380评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,077评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,312评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,924评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,957评论 2 351

推荐阅读更多精彩内容

  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    小迈克阅读 2,972评论 1 3
  • 相信我们在学习Golang语言之前已经学过其他的语言了,在学习语言之前肯定是要先配置下语言的开发环境。这里我们分为...
    _AlphaBaby_阅读 6,807评论 0 1
  • 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图...
    万忍阅读 1,499评论 0 6
  • 人生的征途,于世界存在,于生活绘色,无对错选择,无对错结果,只是不一样结局而已! 每个人都是自己的平凡,但又是别人...
    冬被阅读 214评论 0 1
  • 我以为我会能做的事情还有很多 万万没想到,时间就是这么容不下我 我努力的往回拉,可它拼命的往前跑 无论我怎么喊叫 ...
    littlecup阅读 149评论 0 0