Go语言中文网 为您找到相关结果 106

Go学习笔记之:if else 条件判断

Go语言的条件判断结构也很简单。 package main import "fmt" func main() { // 基本的例子 if 7%2 == 0 { fmt.Println("7 is even") } else { fmt.Println("7 is odd") } // 只有if条件的情况 if 8%4 == 0 { fmt.Println("8 is divisible by 4") } // if条件可以包含一个初始化表达式,这个表达式中的变量 // 是这个条件判断结构的局部变量 if num := 9; num < 0 { fmt.Println(num, "is negative") } else if num < 10 { fmt.Println(num, "has ...阅读全文

博文 2014-11-27 23:00:03 Goopand

Go 系列教程 —— 8. if-else 语句

这是我们 [Golang 系列教程](https://golangbot.com/learn-golang-series/)的第 8 篇。 if 是条件语句。if 语句的语法是 ```go if condition { } ``` 如果 `condition` 为真,则执行 `{` 和 `}` 之间的代码。 不同于其他语言,例如 C 语言,Go 语言里的 `{ }` 是必要的,即使在 `{ }` 之间只有一条语句。 if 语句还有可选的 `else if` 和 `else` 部分。 ```go if condition { } else if condition { } else { } ``` if-else 语句之间可以有任意数量的 `else if`。条件判断顺序是从上到下。如果 `i...阅读全文

博文 2017-12-09 10:24:21 Dingo1991

golang 二维slice初始化

二维slice有多个一维slice元素组成,显然,每个元素的长度不必一致。 a := [][]float64{ {1, 2, 3, 4}, {12, 21, 3, 14}, {1, 1, 2, 3}, {2, 3, 1, 6}, {2, 2, 3, 3}, {1, 1, 1, 1}} 1、应有二维的类型, 2、大花括号下的每个小花括号后均有逗号,最后一个除外 3、最后的大花括号应与最后一个元素在一行,挨着最后的小花括号 a := [][4]float64{//限定4列 {1, 2, 3, 4}, {12, 21, 3, 14}, {1, 1, 2, 3,5},//5个数 {2, 3, 1, 6}, {2, 2, 3, 3}, {1, 1, 1, 1}} 编译会出错:out of bound...阅读全文

博文 2017-07-22 10:03:29 小白雕

[Go] --- 变量的声明和定义

Email : hahayacoder@gmail.com 1 Go中变量的声明和JavaScript很像,使用var关键字 2 Go中变量的声明、定义有好几种形式 //声明并初始化一个变量 var m int = 10 //声明初始化多个变量 var i, j, k = 1, 2, 3 //多个变量的声明(注意小括号的使用) var( no int name string ) //声明时不指明类型,通过初始化值来推导 var b = true//bool型 //一种简单的方式等价于varstrstring="Hello" str := "Hello" //Go中有一个特殊的变量_任何赋给它的值将被丢弃 _, Ret:= 2, 3 3 Go的编译器对声明却未使用的变量在报错 4 和C语言一样...阅读全文

博文 2014-10-11 16:00:02 qiurisuixiang

golang初始化结构体数组

最近组里新项目要求用go来写,没办法只能边看文档边写代码,今天遇到郁闷的问题,查了好久最终发现居然是一个标点符号的导致的,遂纪录之 刚刚给一个接口写单元测试时想初始化一个结构体数组,然后遍历该数组并建立http.Request进行测试,结果一直报错,最后。。。才发现golang结构体初始化的正确姿势T_T 1 requests := []AuthRequest{ 2 AuthRequest{ 3 "plain", 4 "xl_test@xunlei.net", 5 "123456", 6 "smtp", 7 3, 8 "192.168.34.104", 9 "client.example.com", 10 }, 11 AuthRequest{ 12 "plain", 13 "xl_test@...阅读全文

博文 2017-12-28 19:00:08 lit10050528

go语言html/template解析问题

最近使用go语言html/template包进行一些静态化工作,发现template对于小于号(左尖括号<)不能正确处理,反复研究,没有弄清楚怎么回事,后来变通了一下,先对模板进行EscapeString编码,格式化以后,再进行UnescapeString编码,问题得到解决;但还是没弄清楚template为什么对单独的小于号(左尖括号<)无法正确格式化,但发现如果左尖括号的右边有一个或多个右尖括号(>),则能正确解析格式化,而template源码包读起来很费解,最终没有弄明白,希望知道的同学能告知原因;贴上我的解决方案,以供参考 package mytemplate import ( "bytes" "html" "html/template" "os" "strconv" "time" )...阅读全文

Go语言学习(三)枚举和类型

package main import "fmt" //1.枚举的使用 // 枚举指一系列相关的常量,比如下面关于一个星期中每天的定义。通过上一节的例子,我们 // 看到可以用在 const 后跟一对圆括号的方式定义一组常量,这种定义法在Go语言中通常用于定义 // 枚举值。Go语言并不支持众多其他语言明确支持的 enum 关键字。 // 下面是一个常规的枚举表示法,其中定义了一系列整型常量: const( Sunday = iota //0 Monday //1 Tuesday //2 Wedenesday //3 Thursday //4 Friday //5 Saturday //6 //同Go语言的其他符号(symbol)一样,以大写字母开头的常量在包外可见。 //以上例子中 num...阅读全文

博文 2016-03-23 23:00:06 mChenys

golang 中打印函数问题

/** * Created with IntelliJ IDEA. * User: zhangjian * Date: 13-5-13 * Time: 下午1:51 * To change this template use File | Settings | File Templates. */ package main import "fmt" import "unsafe" func main() { a_int := []int{1,2,3,4,5} ai:=reverse(a_int) for aa := range ai{ //1.这个地方"%d "中%d后面一定要加空格,不然golang会认为是字符串%d,直接输出 //fmt.Printf这个函数要求()括号里面的必须是字符串...阅读全文

博文 2015-06-17 20:04:03 zj360202

go的变量作用域

go的变量作用域是花括号确定的,任一变量的作用域只在自身所处的花括号范围内 if, for等可以有初始化表达式的,其作用域还要高于其后的花括号一层 package main func main() { x:=1 println(x) for x:=3;;{ print(x," ") break } println(x) if x:=5; true { print(x," ") } println(x) for { x:=7 print(x," ") break } println(x) if true { x:=9 print(x," ") } println(x) if x:=2; true { print(x," ") x:="abc" print(x," ") } println(x)...阅读全文

博文 2014-10-04 19:26:00 刘地

golang之数组,slice,map

一 、==========================array 数组=================================== 索引只能是 int 整数型 所以不管几维数组 索引都是 整数 slice 是动态数组 索引也是 整数型 map为key 所以 可以为 整数 也可以为 字符串型 注意slice和数组在声明时的区别:声明数组时,方括号内写明了数组的长度或使用...自动计算长度,而声明slice时,方括号内没有任何字符。 arr1 := [10]int{1,2,3,4} //数组,长度为10,只有4个元素指定,其它的元素值默认为0 arr2 := [...]string{"a","b","c"} //数组,长度自适应,这里长度为3 s1 := []int{1,2,3,4...阅读全文

从例子中学习 go 语言 —— 基本语法

go 语言或是 golang 官网上有个 tour。从例子中学习一门语言虽然具有片面性,但是往往是一个入门的好方法;如果一开始就去是看手册的话,有些凌乱,摸不着头脑,有点看字典的味道。所以,先从例子中学习,然后再系统的学习,应该是个不错的方法。 本篇文章基本按照 tour 的步骤,跑跑例子,从例子中去猜测/分析 go 的语法以及结构等,一定程度上可以锻炼一下,观察和分析能力。 hello,world: package main import "fmt" func main() { fmt.Println("hello,world") // 输出 hello,world } 1). package 将程序打包; 2). import 导入其他包,包名用双引号引住;fmt 包 —— 应该是 fo...阅读全文

博文 2014-10-24 11:36:49 陆仁贾

golang生成JSON及解析JSON

一、JSON解析到结构体 在介绍这部分之前先简要介绍一下Json语法 JSON 语法是 JavaScript 语法的子集。JSON 语法是 JavaScript 对象表示法语法的子集。 数据在名称/值对中 数据由逗号分隔 大括号保存对象 中括号保存数组 1.JSON名称/值对 "name" : "value" 2.JSON值 可以是: 数字(整数或浮点数) 字符串(在双引号中) 逻辑值(true 或 false) 数组(在中括号中) 对象(在大括号中) null JSON数据 JSON 数字可以是整型或者浮点型 { "age":30 } JSON对象 JSON 对象在大括号({})中书写: 对象可以包含多个名称/值对: { "name": "runoob", "alexa": 10000, ...阅读全文

博文 2019-02-24 17:34:42 不屈真实

go-if、for、switch、goto、break、continue

if语句: package main import "fmt" func main() { //if后面没有括号 if 1 < 2 { fmt.Println("1<2") } var a = 10 //初始化表达式-a的作用范围只在if语句块 if a := 1; a > 1 { fmt.Println("a > 1") fmt.Println(a) } else { fmt.Println("! a > 1") fmt.Println(a) } fmt.Println(a) } 输出如下: 1<2 ! a > 1 1 10 for语句: package main import "fmt" func main() { //第1种形式无限循环 a := 1 for { a++ if a > ...阅读全文

博文 2016-09-13 08:00:02 u013210620

golang 学习第一篇 hello go

package main import "fmt" func main(){ fmt.Println("Hello go!") } 知识点: 1.每个go程序都必须包含一个package main 2.每个package main中都必须有一个func main 3.golang函数定义:func 函数名 参数列表 返回值列表 函数体 4.书写格式: 4.1 函数体的开始花括号 func 函数名 参数列表 返回值列表之后的同一行 4.2 函数体中的语句可以不以 “;”结尾,除非想把多个语句写在同一...阅读全文

博文 2014-10-04 19:25:58 songqt

golang——json的html转义问题

一、问题描述 json的Marshal 用来对slice,map,struct等结构化类型数据转义成[]byte/string,UnMarshal方法是用来对[]byte/string转义成指定结构的interface。但在处理html标签字符中,会存在转义问题。Marshal方法默认把html标签中的'<', '>' , '&'字符转义成unicode,为强制为有效UTF-8的JSON字符串,用Unicode替换符号替换无效字节。 go doc原文 String values encode as JSON strings coerced to valid UTF-8, replacing invalid bytes with the Unicode replacement rune. Th...阅读全文

博文 2019-04-14 14:34:39 yushu1987

[Golang]也许有你不知道的,Array和Slice(1)

Golang中的array 在golang中,array是同一类型的元素的有序排列,长度不能更改,占用内存上的一段连续空间。 1)基础 首先看看array的声明: [plain] view plaincopyprint?var justiceArray [3]string var justiceArray [3]string 以上声明了justiceArray是为有3个元素的string数组,括号里面的数字是必须的,不能省略。 另外说明一下,[3]string与[2]string是两种不同类型的array。 现在对其赋值:[plain] view plaincopyprint?justiceArray = [3]string{"Superman", "Batman", "Wonder Wom...阅读全文

博文 2015-03-06 12:00:01 abv123456789

Go语言小白笔记-(02)初识Go语言

二:初识Go语言1:GO语言介绍GO语言是什么“Go是一种开源的程序设计语言,它意在使得人们能够方便地构建简单、可靠、高效率的软件”(来自go官网golang.org)我们程序员在开发程序,开发软件时都会选择一门编程语言,那么我们应该怎样进行选择呢?可能有同学会说,我们要选择一门简单的,容易学习的,而且开发效率高的,能够在很短的时间内开发完成一个软件,这样老板会非常的满意,能够升职加薪,Python语言或者Ruby语言就非常适合这种快速开发。但是问题是,用这种语言开发的软件,当用户量多了,运行的速度会非常慢,给人的感觉就是非常卡,大家想一下这种软件还有人愿意使用吗?那可能又有同学说了,我们要学习运行速度快的编程语言,例如C或者是C++,但是这类编程语言学习难度是非常大的。那么有没有一种编程语...阅读全文

博文 2019-06-26 10:42:31 18942317505

google go 语言介绍(二)

分号 你可能已经注意到我们的程序没有分号。在Go的代码中,唯一你经常可以看到分号的地方是分割for循环的子句。在每句语句的结尾分号并不是必须的。 实际上,go像C或Java这样的常规语言一样使用分号,但是这些分号被自动的插入到语句的结尾处,你不需要手工的去输入这些分号。 关于分号更细节的信息可以查看语言规范,但是在本文中你所要知道的就是你不需要在语句末尾加上分号。(如果要在一行中写多个语句,你就需要在语句结尾加上分号)作为特别的帮助,你可以在大括号关闭符号前的语句省略分号。 这种方式提供了一个清晰的,无分号的代码。一个值得注意的地方是,撰写例如if这样的语句,大括号开始符号必须与if处于同一行;否则可能会导致编译错误或者得到一个错误的结果(译注:类似于c/c++/java语言的 if(xx)...阅读全文

博文 2014-10-04 19:26:21 fffvvvzz

Go-基础学习总结

1,背景:GO是强类型语言,其产生的原因是因为开发者认为C#,JAVA,C++太过繁重。而C也太过老旧,开发者想模仿C开发出一种接近底层的第三代语言。在当时多核时代盛行的背景下GO顺应潮流,坚持着简单的原则创造了GO 2,基础语法: 基本数据类型:int16 int32 int64 float32 float64 sring complex 3,定义 数据定义: int int[] slice var i int;i=0; var i int =0' var i,j int=0,0; i:=0 i,j:=0,0 var arr =[]int{0,1} var arr =[10]int; arr:=[10]int arr:=[...]{0,1,2,3} 指向数组的指针 这种反人类的设计,个人表...阅读全文

博文 2015-11-07 15:00:01 shuanger_

go语言导入"C"出错问题

以下内容来自转载,出处:本文出自 “松松” 博客,请务必保留此出处http://dongsong.blog.51cto.com/916653/1587363 最近在看人民邮电出版社 许式伟 吕桂华编著的《Go语言编程》,看到【1.2.9 语言交互性】小节的cprint.go。未按照书中源代码格式编写,而是把 import "C" 和 import "unsafe" 合并放入小括号中并和注释结束符 */ 间隔了一行,这也是大多数Go语言学习和开发者经常使用的代码风格,我修改后的代码如下: package main /* #include #include */ import ( "C" "unsafe" ) func main() { cstr := ...阅读全文

博文 2016-04-16 15:00:01 kuoshuang

Golang(Go语言)的三大设计目标

1.编译快 2.运行快 3.容易写 一般语言都只满足其中一两者,但是Go语言却找到了一个平衡点,同时满足这三个要求。目前比较适合做相对底层一点的东西,比如云计算、数据库、服务器后端等方面的,有些人可能不喜欢golang的语法,认为限制太多,比如大括号不能抬头等,不然编译都不能通过,但是我觉得这样很好,就不存在各种编程风格之争,大家格式都写得一样,习惯了就很容易阅读和理解别人的代码。还有其大繁至简的设计理念,使得用很少的代码量就能完成很复杂的开发工作,只要习惯了语法,写起代码来很轻松~~ C/C++这种类型语言的优点是运行速度快,缺点是编译较慢,语言诞生很早,由于历史原因,C++起初本身并不完美,规范经过不断完善修改并兼容,导致C++很复杂,虽然性能好,但是开发效率不是很高。 Java、.NE...阅读全文

博文 2016-02-20 21:00:02 QQ245671051

Go 边看边练 -《Go 学习笔记》系列(四)

上一篇: Go 边看边练 -《Go 学习笔记》系列(三) 2.1 表达式 语言设计简练,保留字不多。 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var 2.2 运算符 全部运算符、分隔符,以及其他符号。 + & += &= && == != ( ) - | -= |= || < <= [ ] * ^ *= ^= <- > >= { } / << /= <<= ++ = := , ; % >> %= >>= -- ! ... . : &^ ...阅读全文

博文 2015-09-04 21:38:47 88250

Goland中html编辑器会提示大括号语法错误

在Gogland的html编辑器中使用go的html模板时候用到的大括号会提示报错,其实是不影响运行的,一直有个疑问有办法让其能识别呢,哎,都是强迫症搞怪,就像下面这种: ![QQ截图20170911172216.png](https://static.studygolang.com/170911/d6946e39e0ea53b531d3143177c7308a.png...阅读全文

Go 匿名函数的理解

通常不希望再次使用(即只使用一次的)的函数可以定义为匿名函数 详细链接 : https://www.kancloud.cn/xiaohuamao/riji/335713 package main import "fmt" func main() { //匿名函数 1 //f1 为函数地址 f1 := func(x, y int) (z int) { z = x + y return } fmt.Println(f1) fmt.Println(f1(5, 6)) //匿名函数 2 //直接创建匿名函数并运行 f2 := func(x, y int) (z int) { z = x + y return }(7, 8) fmt.Println(f2) //匿名函数 2 (无参数的形式) func...阅读全文

博文 2017-06-16 08:03:18 winnie121

Golang注视规范

注释的意义 注释可以帮我们很好的完成文档的工作,写得好的注释可以方便我们以后的维护。 /**/ 的块注释和 // 的单行注释两种注释风格, 在我们的项目中为了风格的统一,全部使用单行注释,注释的质量决定了生成的文档的质量。 下面从包注释、结构体(接口)注释、函数(方法)注释、代码逻辑注释以及注释规范方面进行说明。 包注释 每个包都应该有一个包注释,一个位于package子句之前行注释 包注释应该包含下面基本信息 // @Title 文件名称 // @Description 文件描述 // @Author 作者名称 (时间 格式是2019/3/26 19:53) // @Update 修改者名称 (时间 格式是2019/3/26 19:53) 结构(接口)注释 每个自定义的结构体或者接口都应该...阅读全文

博文 2019-08-23 15:32:52 mick_

JSON 序列化中的转义和 Unicode 编码

本文比较完整地整理一下 JSON 编码中的转义,以及 JSON 对 Unicode 编码的处理。 其实这是我上一篇文章的姊妹篇。在研究 Unicode 颜文字的时候,由于我们的数据传输是通过 JSON 串来完成的,在对颜文字进行转码传输的过程中,也发现了一个问题。解决问题之后,便有了本总结文。 JSON 中的普通转义字符 个人认为,JSON 是目前针对程序员而言可读性(readability)最佳的数据传输格式之一,并且 JSON 完整地考虑到了数据传输中的转义,避免出现各种注入风险。当对 JSON 进行序列化操作时(Go 中称为 marshal),根据 JSON 标准的说明,需要对字符串中的以下字符进行转义: 符号 名称 转义后的字符串 " 双引号 \" / 斜杠 \/ \ 反斜杠 \\ ...阅读全文

2018年Go语言实战笔记1

含着金钥匙出生的go 近几年,各编程语言中,最火的莫过于Go了。 Go诞生于Google, 是由以下三位计算机领域的大师写的 Go的亲爹们 由于出身名门,Go在诞生之初就吸引了大批开发者的关注。诞生十年以来,已经有很多基于Go的应用,一直有传言Go在将来是要取代现在Java的位置。对于一门只有十年历史的新语言,Go的发展势头是相当迅猛的。 国外的docker就是用Go写的,国内的七牛团队广泛使用Go。而今如火如荼的区块链技术更是将Go推上了热潮 听起来这么牛逼的技术,少年,你不想学下么? go环境搭建 在官网下载go的安装包 如果是mac,可直接用brew安装: brew intall go 查看go版本 ☁ go [master] ⚡ go version go version go1.1...阅读全文

博文 2018-07-21 22:34:46 章鱼喵_

Golang正则匹配成对的括号

Test func TestGetVaild(t *testing.T) { str:="zxtestcv,Vaild[Email;Min(120)]()][fdwd]" var reg = regexp.MustCompile(`Vaild\[(.*?)]`) params:=reg.FindStringSubmatch(str) for _,param :=range params { t.Log(param) } } 测试结果: === RUN TestGetVaild --- PASS: TestGetVaild (0.00s) utils_test.go:16: Vaild[Email;Min(120)] utils_test.go:16: Email;Min(120) PASS ...阅读全文

博文 2019-07-03 17:35:19 承诺一时的华丽

golang Html 正则

文链接:http://outofmemory.cn/code-snippet/2092/usage-golang-regular-expression-regexp-quchu-HTML-CSS-SCRIPT-code-jin-maintain-page-wenzi package main import ( "fmt" "io/ioutil" "net/http" "regexp" "strings" ) func main() { resp, err := http.Get("http://www.baidu.com") // resp, err := http.Get("http://www.163.com") if err != nil { fmt.Println("http get...阅读全文

博文 2016-03-04 17:00:01 zxlvxj

第3课 Go控制,循环,选择,跳转语句

package main import ( "fmt" ) func main() { /* Go虽然保留了指针,但是其与其他编程语言不同的是,在Go中不支持 指针运算以及“->”运算符,而是直接采用“.”选择符来操作指针目标 对象的成员 操作符“&”取变量地址,使用“*”通过指针间接访问目标对象 默认值nil而非NULL */ a := 1 var p *int = &a fmt.Println(*p) //输出1 //指针 /* ++和--是作为语句而非表达式 表达式可以放在=右边 所以现在a++只能作为单独的一行 */ a-- fmt.Println(*p) //输出0 if 1 < 2 { //左大括号必须放在if同一行 } //if的一种用法 if a := 1; a > 1 { ...阅读全文

博文 2016-08-16 18:00:00 lhdalhd1996

学习go语言的第一天

Go语言优势: •静态语言,强类型。静态编译能帮我们检查出来大量的错误,go的强类型甚至变态到不支持隐式的类型转换。 •gofmt,应该这是我知道的第一个官方提供统一格式化代码工具的语言了。有了gofmt,大家的代码长一个样了,也就没有花括号到底放到结尾还是新开一行这种蛋疼的代码风格讨论了。因为大家的代码风格一样,所以看go的代码很容易。 •天生的并行支持,因为goroutine以及channel,用go写分布式应用,写并发程序异常的容易。没有了蛋疼的callback导致的代码逻辑割裂,代码逻辑都是顺序的。 •性能,go的性能可能赶不上c,c++以及openresty,但真的也挺强悍的。在我们的项目中,现在单机就部署了一个go的进程,就完全能够胜任以前200个python进程干的事情,而且C...阅读全文

博文 2015-07-19 03:00:02 lovlin

go语言总结第一章

需要注意的地方:1.整型数据的溢出; 一个int8型整数的最大值是127,如果在加上一就是-128.2.特殊类型:复数: 复数实际上由两个浮点数构成,一个表示实部,一个表示虚部。3.Go语言规定,函数,控制结构等的左大括号“{”必须和函数声明或控制结构放在同一行。如果将左大括号放在函数声明,控制语句的下一行,编译器会在左大括号的前方自动加一个大括号,可能导致程序异常。4.Go对多语言的支持。5.函数名首字母为小写,即为private 函数名首字母为大写,即为publi...阅读全文

Go语言调用C语言函数的坑

最近在看人民邮电出版社 许式伟 吕桂华编著的《Go语言编程》,看到【1.2.9 语言交互性】小节的cprint.go。未按照书中源代码格式编写,而是把 import "C" 和 import "unsafe" 合并放入小括号中并和注释结束符 */ 间隔了一行,这也是大多数Go语言学习和开发者经常使用的代码风格,我修改后的代码如下: package main/*#include #include */import ( "C" "unsafe")func main() { cstr := C.CString("Hello, world") C.puts(cstr) C.free(unsafe.Pointer(cstr))} 结果在我的Windows 7 64...阅读全文

博文 2014-12-07 23:00:06 董松

go 速学 - 05 - 流程控制

目录 流程控制 判断语句 if 循环语句 for 跳转语句 switch 摘要 if,for 的三种形式,switch两种形式,switch 与 break 流程控制 判断语句 if 基本语法 if 后没有小括号 支持变量初始化,初始化的变量要以 “;” 结尾 使用变量初始化产生的变量,作用域仅在 if 语句之内 if 1 < 2 { fmt.Println(1) //1 } if a := 5; a > 3 { //变量初始化 a fmt.Println(a) //5 } //fmt.Println(a) 超出作用域 循环语句 for for 语句有三种形式 第一种 a := 1 for { a++ if a > 3 { break } fmt.Print(a, ":") //2:3: }...阅读全文

博文 2015-05-07 00:00:00 mrseasons

请教同行们一个关于go方法的问题

假设定义一个结构体 ```go type A struct{ } ``` 定义一个方法: ```go func (self *A) SayHi() { fmt.println("你好") } ``` 我想问方法第一个括号里加 `*` 与不加 `*` 有什么区别。测试好像没什么区别。请高手指点下。 我是在网上看到下面这句话才想问的,我不太懂。 ``` 对于接口的执行机制: 1.T仅拥有属于T类型的方法集,而*T则同时拥有(T+*T)方法集 2.基于T实现方法,表示同时实现了interface和interface(*T)接口 3.基于*T实现方法,那就只能是对interface(*T)实现接口 ``...阅读全文

Go 语言基础语法

Go 语言基础语法上一章节我们已经了解了 Go 语言的基本组成结构,本章节我们将学习 Go 语言的基础语法。Go 标记Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号。如以下 GO 语句由 6 个标记组成:fmt.Println("Hello, World!")6 个标记是(每行一个):1. fmt 2. . 3. Println 4. ( 5. "Hello, World!" 6. )行分隔符在 Go 程序中,一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ; 结尾,因为这些工作都将由 Go 编译器自动完成。如果你打算将多个语句写在同一行,它们则必须使用 ; 人为区分,但在实际开发中我们并不鼓励这种做法。以下为两个语句:fmt.Println(...阅读全文

博文 2016-01-29 18:00:01 u011225629

Go if else

8. if-else 语句 if 是条件语句。if 语句的语法是 if condition { } 如果 condition 为真,则执行 { 和 } 之间的代码。 不同于其他语言,例如 C 语言,Go 语言里的 { } 是必要的,即使在 { } 之间只有一条语句。 if 语句还有可选的 else if 和 else 部分。 if condition { } else if condition { } else { } if-else 语句之间可以有任意数量的 else if。条件判断顺序是从上到下。如果 if 或 else if 条件判断的结果为真,则执行相应的代码块。 如果没有条件为真,则 else 代码块被执行。 让我们编写一个简单的程序来检测一个数字是奇数还是偶数。 package ...阅读全文

博文 2019-04-08 22:35:11 听砜

Golang中的array与slice(1)

这文章分为三部分,第一、二部分分别详细讲述golang中的array与slice,第三部分则讨论slice的使用与技巧。这文章不是教程,需要基本的golang知识。 关于第一、二部分,这里有一篇文章比我叙述得更好(自备爬梯):http://blog.golang.org/go-slices-usage-and-internals 看过这文章的朋友可以直接忽略此文一二部分。 该篇是第一部分,另外两篇的链接: Golang中的array与slice(2) Golang中的array与slice(3) ------- Golang中的array 在golang中,array是同一类型的元素的有序排列,长度不能更改,占用内存上的一段连续空间。 1)基础 首先看看array的声明: var justi...阅读全文

博文 2014-10-20 23:00:01 u011649436

go 学习笔记之值得特别关注的基础语法有哪些

在上篇文章中,我们动手亲自编写了第一个 `Go` 语言版本的 `Hello World`,并且认识了 `Go` 语言中有意思的变量和不安分的常量. 相信通过上篇文章的斐波那契数列,你已经初步掌握了 `Go` 语言的变量和常量与其他主要的编程语言的异同,为了接下来更好的学习和掌握 `Go` 的基础语法,下面先简单回顾一下变量和常量相关知识. ## 有意思的变量和不安分的常量 - 变量默认初始化有零值 ```go func TestVariableZeroValue(t *testing.T) { var a int var s string // 0 t.Log(a, s) // 0 "" t.Logf("%d %q", a, s) } ``` > `int` 类型的变量初始化默认零值是零 `...阅读全文

博文 2019-08-24 17:12:58 snowdreams1006

Go by Example: If/Else

Go语言中的If和else的分支结构非常清晰明了。 package main import "fmt" func main() { // 这是一个基本的例子 if 7%2 == 0 { fmt.Println("7 is even") } else { fmt.Println("7 is odd") } // 只有if条件的情况 if 8%4 == 0 { fmt.Println("8 is divisible by 4") } // if条件可以包含一个初始化表达式,这个表达式中的变量 // 是这个条件判断结构的局部变量,该变量在所有分支中都是可用的 if num := 9; num < 0 { fmt.Println(num, "is negative") } else if num <...阅读全文

博文 2014-11-25 13:00:00 codemanship