go 语言学习笔记(1)

hello , world

package main

import (
	"fmt"
)

func main{
	fmt.Println("hello, world")
}

go语言的结构:

  • 包, import, 函数
  • 包的概念与 Java 中相同
  • import 的作用相当于 C 中的 include
  • 函数的概念与其他语言中相同

大括号的要求

  • go 程序对大括号位置有强制要求, 必须在同一行写左括号(需要写大括号的时候)

若是将上面的 hello world 程序写成下面这种样子, 将会报错, 注意 main 函数的大括号位置

package main

import (
	"fmt"
)

func main
{
	fmt.Println("hello, world")
}

虽然 go 语言每一句的末尾是不需要写分号的, 但实际上编译器在进行编译前会给每一句加上分号, 如果大括号不按照格式要求写的话, 会导致编译器无法识别从而报语法错误

变量声明

package main

import (
	"fmt"
)

func main
{
	const // 声明常量
	var // 声明变量
	变量名 := 表达式 // 声明作用域更小的局部变量
}
  • 当作为函数局部变量时, var 与 := 声明的效果相同
  • 若需要声明为循环变量则效果不同, var 声明可存活到函数结束, := 声明方式则只能存活到循环结束

判断与循环

if, else if, else

package main

import (
	"fmt"
)

func main{
	if 1 >= 2 {
		fmt.Println("a")
	} else if 1 >= 3 {
		fmt.Println("b")
	} else {
		fmt.Println("c")
	}
}
  • 判断条件类似 Python 中的形式, 不需要括号, C 语言中强制要求括号
  • 若条件众多, 可以用括号括起来防止逻辑混乱

go 中只有 for 循环

有范围的条件限制可以这么做

package main

import (
	"fmt"
)

func main{
	for i := 1; i < 10; i++ { 
		// 上行中的效果相当于 C 语言中的 for (int i = 1; i < 10; i++)
		// 这是循环体
	}
}

如果在 for 旁边不写循环条件, 则会变成死循环, 如下图

package main

import (
	"fmt"
)

func main{
	// 这是死循环
	for {
		// 这是循环体
	}
}

实现 while 循环

  • 在死循环的循环体内添加跳出循环的条件即可
  • 跳出的语句还是使用 break

go 中的 break 和 continue 语句作用以及用法与其他语言相同

switch 语句

与 C 语言十分相似

package main

import (
	"fmt"
)

func main{
	switch 表达式{
		case : {
			
		}
		case : {
			
		}
	}
}

函数声明

package main

import (
	"fmt"
)

func 函数名(形参名1 形参类型1, 形参名2, 形参类型2) 函数返回值类型{
	// 函数体
	return 
}

func main{
}
  • 若有多个形参, 则按照上面的格式以此类推
  • go 语言允许函数返回值有多个
  • 函数返回值若是有多个则需要将返回值类型写成括号括起的形式

import

  • 参考 Python 中的 import 形式即可
  • 库名需要用双引号引起
  • 若只有 import 一个库则可不使用小括号
  • import 库包含多个时, 需要用小括号括起

静态类型语言

  • go 语言属于静态类型语言
  • 每个变量被声明之后类型不可更改, 内容可以更改
  • C, Java 属于动态类型语言
  • 静态类型的特点可以帮助编译器更快地执行编译工作, 提高效率

保留特定小数位数输出

  • fmt.Printf() 用这个
  • 使用方式参考 C 语言中的 printf 用法, 大部分相同, 格式化标志符有部分不一样, 查询参考手册即可

big包

  • 用于解决高精度计算
  • 底层原理还是基于字符串进行大数运算, 参考高精度算法

你可能感兴趣的:(golang,学习,后端,经验分享)