In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-01-16 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >
Share
Shulou(Shulou.com)06/02 Report--
小编给大家分享一下如何使用GO语言进行开发,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
先来个hello world!
// godemo1/* Author by zhangpeng*/package mainimport ( "fmt")func main() { fmt.Println("Hello World")}
运行结果:
C:/Go/bin/go.exe run godemo1.go [E:/GoTest]Hello World成功: 进程退出代码 0.
哇擦雷,代码里竟然没有分号!其实,和C一样,Go的正式的语法使用分号来终止语句。和C不同的是,这些分号由词法分析器在扫描源代码过程中使用简单的规则自动插入分号,因此输入源代码多数时候就不需要分号了。
规则是这样的:如果在一个新行前方的最后一个标记是一个标识符(包括像int和float64这样的单词)、一个基本的如数值这样的文字、或以下标记中的一个时,会自动插入分号:
break continue fallthrough return ++ -- ) }
通常Go程序仅在for循环语句中使用分号,以此来分开初始化器、条件和增量单元。如果你在一行中写多个语句,也需要用分号分开。
注意:无论任何时候,你都不应该将一个控制结构((if、for、switch或select)的左大括号放在下一行。如果这样做,将会在大括号的前方插入一个分号,这可能导致出现不想要的结果。
Go中的类型可以分类如下:
编号类型和说明1布尔类型 - 它们是布尔类型,由两个预定义常量组成:(a)true(b)false2数字类型 - 它们是算术类型,在整个程序中表示:a)整数类型或 b)浮点值。3字符串类型 - 字符串类型表示字符串值的集合。它的值是一个字节序列。 字符串是不可变的类型,一旦创建后,就不可能改变字符串的内容。预先声明的字符串类型是string。4派生类型: - 包括(a)指针类型,(b)数组类型,(c)结构类型,(d)联合类型和(e)函数类型(f)切片类型(g)函数类型(h)接口类型(i) 类型
数组类型和结构类型统称为聚合类型。函数的类型指定具有相同参数和结果类型的所有函数的集合。我们将在下一节中看到基本类型,而其他类型将在后续章节中介绍。
预定义与体系结构无关的整数类型是:
编号类型和说明1uint8 - 无符号8位整数(0到255)2uint16 - 无符号16位整数(0到65535)3uint32 - 无符号32位整数(0至4294967295)4uint64 - 无符号64位整数(0至18446744073709551615)5int8 - 带符号的8位整数(-128到127)6int16 - 带符号的16位整数(-32768到32767)7int32 - 带符号的32位整数(-2147483648至2147483647)8int64 - 带符号的64位整数(-9223372036854775808至9223372036854775807)浮点类型
预定义的与体系结构无关的浮点类型是:
编号类型和说明1float32 - IEEE-754 32位浮点数2float64 - IEEE-754 64位浮点数3complex64 - 复数带有float32实部和虚部4complex128 - 复数带有float64实部和虚部
n位整数的值是n位,并且使用二进制补码算术运算来表示。
其他数字类型
还有一组具有特定大小的数字类型:
编号类型和说明1byte - 与uint8相同2rune - 与int32相同3uint - 32或64位4int - 与uint大小相同5uintptr - 无符号整数,用于存储指针值的未解释位
变量和常量
变量的声明很像 javascript,使用 var关键字。
//声明初始化一个变量var x int = 888var str string = "hello world"//声明初始化多个变量var i, j, k int = 1, 2, 3 //不用指明类型,通过初始化值来推导var b = false//bool型
还有一种定义变量的方式
x := 888 //相当于 var x int = 888
常量很简单,使用const关键字:
const s string = "hello world"const pi float32 = 3.1415926
数组
func main() { var a [5]int fmt.Println("array a:", a) a[1] = 10 a[3] = 30 fmt.Println("fangwifi:", a) fmt.Println("len:", len(a)) b := [5]int{1, 2, 3, 4, 5} fmt.Println("init:", b) var c [2][3]int for i := 0; i < 2; i++ { for j := 0; j < 3; j++ { c[i][j] = i + j } } fmt.Println("2d: ", c)}
运行结果:
array a: [0 0 0 0 0]fangwifi: [0 10 0 30 0]len: 5init: [1 2 3 4 5]2d: [[0 1 2] [1 2 3]]
数组的切片操作
a := [5]int{1, 2, 3, 4, 5}b := a[2:4] // a[2] 和 a[3],但不包括a[4]fmt.Println(b)b = a[:4] // 从 a[0]到a[4],但不包括a[4]fmt.Println(b)b = a[2:] // 从 a[2]到a[4],且包括a[2]fmt.Println(b)
if语句分支循环语句
注意:if 语句没有圆括号,而必需要有花括号
//if 语句if x % 2 == 0 { //do anything}//if - elseif x % 2 == 0 { //偶数...} else { //奇数...} //多分支if num < 0 { //负数} else if num == 0 { //零} else { //正数}
注意:switch语句没有break,还可以使用逗号case多个值switch 语句
switch i { case 1: fmt.Println("one") case 2: fmt.Println("two") case 3: fmt.Println("three") case 4,5,6: fmt.Println("four, five, six") default: fmt.Println("invalid value!")}
前面你已见过了,下面再来看看for的三种形式:(注意:Go语言中没有while)for 语句
//经典的for语句 init; condition; postfor i := 0; i
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.