内容简介:学习一门语言的时候,难免从最简单的程序结构学起,这些东西在掌握了一门别的开发语言的情况(如大名鼎鼎的java),就会显得如鱼得水了,下面会把我学习一些简单例子分享出来。快速为一些变量赋值快速的实现一些数值交换
前言
学习一门语言的时候,难免从最简单的程序结构学起,这些东西在掌握了一门别的开发语言的情况(如大名鼎鼎的java),就会显得如鱼得水了,下面会把我学习一些简单例子分享出来。
基本程序结构
快速为一些变量赋值
const ( NUM1 = 1 + iota NUM2 NUM3 NUM4 ) //输出结果:1,2,4,8 func TestPrint(t *testing.T) { t.Log(NUM1, NUM2, NUM3, NUM4) }
快速的实现一些数值交换
//数值交换 func TestExchange(t *testing.T) { //也可以这样定义变量:var aa int = 1 a := 1 b := 2 t.Log(a, b) //交换数值 b, a = a, b t.Log(a, b) }
类型转换
//给类型命名 type typeInt int64 func TestInt(t *testing.T) { var a int64 = 2 var b int32 = 3 //类型不可转 //a = b var c = typeInt(3) t.Log(a, b, c) }
实现斐波拉切数列的两种方式
//斐波拉切 func TestFibList(t *testing.T) { var a int = 1 var b int = 1 t.Log(a) for i := 0; i < 5; i++ { t.Log(b) tmp := a + b a = b b = tmp } } //斐波拉切 递归 func TestFibRecursion(t *testing.T) { t.Log(FibRecursion(5)) } func FibRecursion(i int) (result int) { if i == 1 || i == 2 { return 1 } return FibRecursion(i-1) + FibRecursion(i-2) }
数组比较,和 java 不同,不是比较指针,可以比较值的
//数组比较 func TestCompareArray(t *testing.T) { a := [...]int{1, 2, 3, 4} b := [...]int{1, 2, 2, 4} c := [...]int{1, 2, 3, 4} t.Log(a == b) //false t.Log(a == c) //true }
go也是有指针的,但是没有细看,只是写个例子看下结果
func TestPoint(t *testing.T) { var a int64 = 1 var aPtr = &a t.Log(a, aPtr)// 1 0xc420018230 //打印类: int64 *int64 t.Logf("%T %T", a, aPtr) }
string的默认值
func TestString(t *testing.T) { //默认值是"" 不是java的那种null var str string t.Log("+" + str + "+")//输出++ }
for循环
//for循环 go 当中原来没有while func TestFor(t *testing.T) { n := 5 for n > 0 { t.Log(n) n-- } } //for循环实现冒泡排序 func TestForSort(t *testing.T) { a := [...]int{3, 5, 2, 6, 4, 8, 2, 9,1,23,2,34,4,55,11} for i := 0; i < len(a)-1; i++ { for j := 0; j < len(a)-i-1; j++ { if a[j] > a[j+1] { tmp := a[j] a[j] = a[j+1] a[j+1] = tmp } } } t.Log(a)//[1 2 2 2 3 4 4 5 6 8 9 11 23 34 55] }
go当中的条件判断,写起来还是很爽的
//比较 func TestCondition(t *testing.T){ //可以条件结果赋值给变量 if a:=3>2;a{ t.Log("3>2") } // GOOS is the running program's operating system target: // one of darwin, freebsd, linux, and so on. switch runtime.GOOS{ //自带break case "darwin": t.Log("darwin") case "freebsd": t.Log("freebsd") case "linux": t.Log("linux") default: t.Log("default") } switch { case 4>2: t.Log("4>2") case 4<2: t.Log("4<2") } }
以上所述就是小编给大家介绍的《与go邂逅(二)——go当中的基本程序结构》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 与go邂逅(二)——基本程序结构
- 当中国剩余定理邂逅RSA
- 当Kotlin邂逅设计模式之代理模式-上篇(二)
- 当Kotlin邂逅设计模式之代理模式-下篇(二)
- Tracing 与 Metrics 的邂逅,提供更强大的 APM 能力
- Tracing 与 Metrics 的邂逅,提供更强大的 APM 能力
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Linux内核设计的艺术
新设计团队 / 机械工业出版社华章公司 / 2011-6-20 / 79.00元
关于Linux内核的书已经不计其数,但这本书却是独树一帜的,它的内容代表着Linux内核研究成果的世界顶尖级水平,它在世界范围内首次提出并阐述了操作系统设计的核心指导思想——主奴机制,这是所有操作系统研究者的一笔宝贵财富。本书可能也代表着同类图书的顶尖水平,是一本真正能引导我们较为容易地、极为透彻地理解Linux内核的经典之作,也可能是当前唯一能从本质上指引我们去设计和开发拥有自主知识产权的操作系......一起来看看 《Linux内核设计的艺术》 这本书的介绍吧!