博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Go语言学习(一):初识Golang
阅读量:2756 次
发布时间:2019-05-13

本文共 2037 字,大约阅读时间需要 6 分钟。

前言

最近一段时间接触了下go语言,很有兴趣,花时间研究了下,觉得可以学一学,然后就不多说了。Ubuntu下配置Go环境的可以参考下博文,亲测可用。

初识Golang

关于关键字、类型和变量:
1,Go在语法上类C,如果希望将两个(或更多)语句放在一行书写,必须用分号(“;”)隔开。一般情况下,不需要分号。
eg. 	for init; condition; post {		...	}
2, 定义一个变量,默认赋值为其类型null值。引入“:=”符号在一步内完成声明与赋值(只用于函数内,此情况下,变量类型由赋值内容自动推演
3, 特殊变量_(下划线),任何赋给它的值将被丢弃。
4,GO编译器对声明却未使用的变量会报错。
5, int/uint视硬件架构定义为32位或64位,另外有一套完整的类型:int8, int16, int32, int64 / byte(uint8别名), uint8, uint16, uint32, uint64 / float32, float64。各类型完全独立,不能混合赋值,除非强转。
6,常量是无类型的。iota关键字表示0,重复使用时,每次使用加1。Go使用其演绎枚举类型。
eg. 	const (		Monday = iota		Tuesday		Wednesday		...		Sunday		numberOfDays   // 该值为包内私有,不可为其他包访问	)
7,字符串变量在Go一旦被赋值,字符串就不能被修改,除非进行转换。
eg. 	// 报错	var s string = "hello"	s[0] = 'c'  		// 正确	s := "hello"	c := []rune(s) 	c[0] = 'c'	s2 := string(c)
8,rune是int32的别名,用UTF-8编码。该类型在需要遍历字符串中的字符时,可以遍历每个字节(PS:使用US ASCII编码字符串时,字节与字符等价,但Go中不存在ASCII编码),为了获取实际的字符,使用该类型。
9,在有返回值的函数中,不允许将”最终的“retrun语句包含在if...else...中
eg. 	func example(x int) int {  // 报错: function ends without a return statement		if x == 0 {			return 1		} else {			return x		}	}
10,break除了跳出当前循环外,后面还可以接指定标签,用标签决定退出哪个循环。
eg. 	J: for j := 9; j < 5; j++ {	       for i := 9; i < 10; i++ {		       if i > 5 {			       break J		       }		   }  	   }
11,range相当于迭代器,用于循环,从循环的内容中返回一个键值对。
eg.	list := []string{"a", "b", "c", "d", "d"}	for k, v := range list {		... // k为数组下标,v为元素内容	}
12,switch后面表达式不必为常量或整数,也可以无表达式。无表达式时,相当于if-else if-else判断。case匹配失败不会自动向下尝试,需要使用fallthrough关键字。 
eg.	switch i {		case 0:  // i为0时,执行func2()		case 1:			func1()		default:			func2()	}		switch i {		case 0: 			fallthrough  // i为0时,执行func1()		case 1:			func1()		default:			func2()	}

练习水题

1,打印1至100数字。当3的倍数打印“Fizz”,5的倍数打印“Buzz”,同时是3,5的倍数打印“FizzBuzz”。
	for i := 1; i <= 100; i++ {		if (i % 3 == 0) && (i % 5 == 0) {			fmt.Println("FizzBuzz")		} else if i % 3 == 0 {			fmt.Println("Fizz")		} else if i % 5 == 0 {			fmt.Println("Buzz")		} else {			fmt.Println(i)		}	}
2,打印内容“A”三角。
	str := "A"	for i := 0; i < 10; i++ {		fmt.Printf("%s\n", str)		str = str + "A"	}

总结

在C基础上转Go感觉还比较顺手。

学习资料

《Go语言编程》
《学习Golang》

转载地址:http://drpad.baihongyu.com/

你可能感兴趣的文章
山寨SaaS--管理软件夜未眠(五)
查看>>
think in baidu
查看>>
疯狂的程序员74
查看>>
疯狂的程序员75
查看>>
疯狂的程序员77
查看>>
说说我对北京 深圳 上海 三处IT的感觉
查看>>
我对数据仓库的感觉
查看>>
程序人生-程序员与按摩
查看>>
做人要低调,绝对经典的低调
查看>>
比悍马还悍的俄罗斯装甲越野车
查看>>
隔行如隔山!大家来818各行业鲜为人知的内幕吧
查看>>
童言无忌最高境界~~笑死人
查看>>
访谈:“80后”程序员为什么找不到工作
查看>>
apache 配置成滚动日志
查看>>
程序员的九重境界,你是第几重?
查看>>
Javascript初学心得
查看>>
SNS那点事儿—乱评杂谈
查看>>
微软(中国)蒙冤记
查看>>
微软“正版”恐吓营销
查看>>
经纬度加减运算。(度°分′秒″格式)
查看>>