公司做网站需要几个人,北京公司摇号,郑州营销网站建设,网站友情链接代码golang的基础语法 golang的基础语法和其他语言大部分都差别不大#xff0c;如果我们有学习过其他语言#xff0c;比如JavaScript#xff0c;php#xff0c;java#xff0c;python等#xff0c;有其他语言的语法基础#xff0c;那么我们学习golang将更容易上手。那我们直… golang的基础语法 golang的基础语法和其他语言大部分都差别不大如果我们有学习过其他语言比如JavaScriptphpjavapython等有其他语言的语法基础那么我们学习golang将更容易上手。那我们直接开始介绍golang的语法吧。 注释 注释分单行注释和多行注释。golang的注释和其他的开发语言的注释是一样的。双斜杠表示单行注释/**/表示多行注释。 // 单行注释这么开头
/* 多行注释
*/定义包名 一般来说使用开发工具的时候包名是不需要手动输入的开发工具会在创建文件的时候自动生成包名。 比如定义一个包名称为main的包 package main //定义一个名称为main的包每个go文件中必须定义包名来指明该文件归属于哪个包而且定义包名必须在文件中非注释的第一行go文件中若存在程序入口(main函数)则该文件定义的包名必须为main一个文件中有且只有一次定义即只有一行package语句包名和文件名没有必然联系可以不同。 导入依赖库 依赖库分为系统库和第三方依赖库。导入方式有两种单行导入和合并导入。一般上开发工具会自动帮忙处理。引用一个包的时候使用单行需要引用多个包的时候会自动合并引用。 注意导入的包都必须使用若没有使用编译时将报错。所以不要引入无用的包。 import fmt
import (osstringsgorm.io/gormgithub.com/kataras/iris/v12
)函数 func是函数定义的关键字函数体用 { } 包围注意 { (左括号)不能单独成行必须和main()在同一行。函数名小写的时候表示这个函数是私有函数函数名大写的时候表示这个函数是公开函数公开函数可以全局访问私有函数只能在自己的包内访问。 func main(){fmt.Println(Hello World)
}函数调用 函数的调用方式分2种同一个包内的函数调用可以直接写函数名称就可以不同包之间的调用需要引入对方的包然后通过包名.函数名的方式调用。 比如下方的函数调用是调用了fmt包的Println函数。 fmt.Println(Hello World)变量、常量、占位符、运算符、数组、指针、结构体 变量 变量使用之前需要先声明。变量的声明分几种方式。一种是在开头的时候声明使用 var 关键词来声明变量另一种是在使用的时候声明 使用 : 来声明和赋值。还有一种是合并声明。不过尽量单独声明。 var a int 1 //第一种: var 变量名 变量值
value : 2 //第二种: value_name : 1
var b, c, d 1, 2, 3 //第三种: 合并声明
var( //第四种: 合并声明value1 int 3value2 string Hello World
) 上述有三种变量声明方式var是golang的关键词用于变量的声明。第一、三和四种可以在任意地方声明当定义在函数体外时相当于全局变量而第二种只能在函数体内声明相当于局部变量。变量在声明后若不手动定义编译器将为其赋值为相应的默认值 注意golang中的变量、方法、结构体等等的名称都推荐使用驼峰命名法而名字的首字母如果是小写字母则表示在包(package)内可见而如果是大写字母则表示包外可见。 常量 const var a int 1
const var (b int 2c string Hello World
)常量通过关键词const来定义。常量同样有单行声明和合并声明声明时必须定义定义后不可修改。 占位符 _ , a myFunction()function()函数有两个返回值第一个返回值赋给_ 第二个返回值赋给a此时的 _ 就称做占位符可以理解为仅仅为了给第一个返回值有位置存放即可这个返回值我再也不会用到如果这个返回值之后还可能用到则不能赋给 _ 否则今后无法再使用。 运算符 golang的运算符包括 算术运算符相加、-相减、*相乘、/相除、%求余、自增、--自减。关系运算符检查两个值是否相等、!检查两个值是否不相等、检查左边值是否大于右边值、检查左边值是否小于右边值、检查左边值是否大于等于右边值、检查左边值是否小于等于右边值逻辑运算符逻辑 和 运算符、||逻辑 或 运算符、!逻辑 非 运算符位运算符按位与运算符是双目运算符其功能是参与运算的两数各对应的二进位相与|按位或运算符|是双目运算符其功能是参与运算的两数各对应的二进位相或^按位异或运算符^是双目运算符其功能是参与运算的两数各对应的二进位相异或左移运算符是双目运算符左移n位就是乘以2的n次方其功能把左边的运算数的各二进位全部左移若干位由右边的数指定移动的位数高位丢弃低位补0右移运算符是双目运算符右移n位就是除以2的n次方其功能是把左边的运算数的各二进位全部右移若干位右边的数指定移动的位数。 golang的运算符合其他开发语言是一致的这里不做更多介绍。 数组 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列这种类型可以是任意的原始类型例如整型、字符串或者自定义类型。 // 形如 var 变量名 [数量] 变量类型
var stuName [20] string指针 一个指针变量指向了一个值的内存地址。 var-type 为指针类型var_name 为指针变量名* 号用于指定变量是作为一个指针。 类似于变量和常量在使用指针前你需要声明指针。指针声明格式如下 // var var_name *var-type
var stuNameIndex *string结构体 结构体定义需要使用 type 和 struct 语句。struct 语句定义一个新的数据类型结构体中有一个或多个成员。type 语句设定了结构体的名称。结构体的格式如下 //形如 type variable_type struct { …… }
type People struct {var id intvar name string
}
var people People
people.id 1
people.name Sinclar切片 Go 语言切片是对数组的抽象。 Go 数组的长度不可改变在特定场景中这样的集合就不太适用Go中提供了一种灵活功能强悍的内置类型切片(动态数组),与数组相比切片的长度是不固定的可以追加元素在追加时可能使切片的容量增大。 var slice1 []type
//也可以指定长度
var slice1 []type make([]type, 10)
//也可以简写为
slice1 : make([]type, 10)条件语句 条件语句有两种一种是 if……else…… 语句另一种是 switch 语句还有一种select语句。 if……else…… if 条件 {执行代码
} else {执行代码
}switch 语句 switch condition {case condition1:...case condition2:...default:...
}select 语句 这涉及到一些高级语法本篇先不讲述我将在下一篇详细解释感兴趣的同学们可以自己查阅资料先学习一下。 switch语句中没有break语句golang的语法经过优化后在某个case执行完毕后就退出switch了不会再接着往下执行 如果希望执行了某个case之后接着往下执行可以在每个case最后使用fallthrough关键字。注意使用fallthrough关键字后后面的case是强制执行无论condition是否为true for 循环语句 golang的循环语句只有一种。那就是for语句。for语句有几种形式。 标准格式 /*for init; condition; next {doSomething
}*/
for i:0; i20; i {fmt.Println(i is: %d, i)
}特殊格式 //无限循环
for {doSomething
}
for true {doSomething
}
//省略init或next
for ; sum100; {sum sum 1
}控制语句 break、continue和goto是用于for语句或switch语句内的控制语句其用法于c或c中的用法相似这里就不再赘述了。 看到这里大家应该都觉得似曾相识好像学过的编程语言都有这些东西。所以大家应该不用花太多时间在基础语法上几分钟就能看完。看完这些基础知识大家应该可以写出一些简单代码来验证今天的基础语法。 但是这里也只是讲解了一些基础用法在接下来的学习中我们还会遇到更多高级的用法包括select、channel、方法、切片、范围、集合和接口等内容。 golnag的开发者工具 我现在使用的开发者工具是GoLand。这是一个非常强大的golang开发工具。因此在此我也推荐大家使用GoLand开发工具来开发我们的golang博客系统。 © 著作权归作者所有,转载或内容合作请联系作者 喜欢的朋友记得点赞、收藏、关注哦