Go入门教程语法基础

Posted 玖五二七

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go入门教程语法基础相关的知识,希望对你有一定的参考价值。

go语言的hello world

请参考go module来配置工程

以下是hello.go文件

package main

import "fmt"

func main() 
  fmt.Println("hello world")

在控制台执行

go run hello.go

得到如下输出

hello world

以下是解释

// 每个go文件必须以package <包名>开始,包名为main说明这是程序入口点
// 可以执行在控制台运行
package main

// import是每个go文件都需要包括的,没有一个例外
// 一次加载所有go的包文件将非常慢,所以需要按需要导入
import "fmt"

// 程序入口点main函数,function是由一行或多行代码组成
// 可以从程序其他地方调用的
func main() 
  fmt.Println("hello world")

典型Go文件布局

  1. package <包名>
  2. import语句
  3. 实际代码块

调用其他包中的函数

fmt.Println就是其他包(fmt)中的,不在我们这个main包中

在使用其他包的函数之前先要import这个包

函数返回值

package main

import (
  "fmt"
  "math"
  "strings"
)

func main() 
  fmt.Println(math.Floor(2.35))  // 调用一个向下取整的函数
  fmt.Println(strings.Title("hello world"))  // 所有字符串的首字符大写,并返回Unicode格式

以上的代码展示了一个引入多个其他包的程序,上面也有说明,fmt.Println会打印这些函数的返回值,详细的函数返回值将在教程(十)函数中给出

转义字符

转义
\\n换行符
\\t制表符
"双引号
\\反斜杠

数据类型

类型说明
int整型,保存数字
float64浮点数,保存带小数部分的数字
bool布尔值。只能是true或false
string字符串。通常表示文本字符
rune单字符文本

可以使用reflect来查看所有类型

package main

import (
  "fmt"
  "reflect"
)

func main() 
  fmt.Println(reflect.TypeOf(42))
  fmt.Println(reflect.TypeOf(23.4))

变量声明

在Go语言中,变量是包含值的一块存储。你可以用声明来为变量命名。

package main

import (
  "fmt"
  "reflect"
)

func main() 
  fmt.Println(reflect.TypeOf(42))
  fmt.Println(reflect.TypeOf(23.4))

  // 变量声明
  var quntity int
  var length, width float64
  var name string

  // 变量赋值
  quntity = 3
  length = 2.0
  width = 3.5
  name = "li li"

  // 变量使用
  fmt.Println(quntity, length, width, name)

如何理解变量声明和赋值呢

可以想象在一个班上,有个叫张三的同学,老师介绍,我们班有个叫张三的男同学 这是声明 大家只知道有个叫张三的男同学,是谁并不知道 ,然后把张三叫上讲台,这就是张三 这个时候就是赋值,能看出高矮胖瘦了。

变量零值

如果只声明了一个变量,没有赋值,则它将是零值。

不同类型的变量零值不同

数据类型零值
整型0
浮点型0
字符串空字符
布尔值false

短变量声明

如果你在声明变量的时候就知道它是什么类型,不必显式的指明变量的类型,而使用:=来进行短变量声明

package main

import (
  "fmt"
  "reflect"
)

func main() 
  quantity := 2
  length, width := 2, 4
  fmt.Printf("q = %d typeof %s\\n", quantity, reflect.TypeOf(quantity))
  fmt.Printf("l = %d typeof %s\\n", length, reflect.TypeOf(length))
  fmt.Printf("w = %d typeof %s\\n", width, reflect.TypeOf(width))


运行结果如下

q = 2 typeof int
l = 2 typeof int
w = 4 typeof int

不需要明确地声明变量类型,赋值给变量的类型成为该变量的类型

代码仓库
用的coding的仓库托管,github状态确实有点一言难尽

以上是关于Go入门教程语法基础的主要内容,如果未能解决你的问题,请参考以下文章

我的Go+语言初体验——语法验证/性能测试篇(直男程序员的真实体验)

GO 语言基础语法一 (快速入门 Go 语言)

数据库开发基础-自己动手丰衣足食

0基础学Go语言光速入门教程

Golang入门:一天学完GO的进阶语法

Java基础语法