前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Golang语言学习笔记 (打卡第一天) Go主题月

Golang语言学习笔记 (打卡第一天) Go主题月

作者头像
微芒不朽
发布2022-09-13 10:03:52
2290
发布2022-09-13 10:03:52
举报

Go语言环境搭建

Go 语言支持以下系统Linux,FreeBSD,Mac OS,Windows。Go官方安装包地址:https://golang.org/dl/。Google安装包地址:https://golang.google.cn/dl/。

测试是否安装成功

代码语言:javascript
复制
E:\Go>go version
go version go1.16.2 windows/amd64

Go项目的组成部分:

  • 包声明
  • 引入包
  • 函数
  • 变量
  • 语句 & 表达式
  • 注释

新建test.go,切换到文件目录,执行

代码语言:javascript
复制
go run test.go

运行test.go文件

代码语言:javascript
复制
package main
import "fmt
// 1.引入fmt包(实现了格式化 IO(输入/输出))
func main() {
/* 
1.func main 是程序开始执行的函数。
2.如果有init() 函数则会先执行该函数
*/
   fmt.Println("Hello, World!")
}

1.package main 定义了包名。2.在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。3.package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包。

生成生成二进制文件

代码语言:javascript
复制
go build test.go

格式化字符串 fmt.Sprintf

Go 语言中使用 fmt.Sprintf 格式化字符串并赋值给新串

代码语言:javascript
复制
package main

import "fmt"

func main(){
 // %d 表示整型数字,%s 表示字符串
    var code=11
    var date="2020-12-31"
    var url="code=%d&date=%s"
    var target=fmt.Sprintf(url,code,date)
    fmt.Println(target)
}
//code=11&date=2020-12-31

数据类型

**布尔型 :**true 或者 false。**数字类型:**整型 int 和浮点型 float32、float64。**字符串类型:**字符串就是一串固定长度的字符连接起来的字符序列。派生类型:

  • (a) 指针类型(Pointer)
  • (b) 数组类型
  • (c) 结构化类型(struct)
  • (d) Channel 类型
  • (e) 函数类型
  • (f) 切片类型
  • (g) 接口类型(interface)
  • (h) Map 类型
代码语言:javascript
复制
 //布尔型
 var a bool = true
 fmt.Println(a)
 //数字类型:
 var b int = 1
 fmt.Println(b)
 //字符串类型:
 var c string = "躲躲"
 fmt.Println(c)
 //nli类型 nil的意思是无,或者是零值。
 //nil是预定义的标识符,代表指针、通道、函数、接口、映射或切片的零值,也就是预定义好的一个变量

 var a1 *int;
 var a2 []int;
 var a3 map[string] int;
 var a4 chan int;
 var a5 func(string) int;
 var a6 error; // error 是接口
 fmt.Println(a1,a2,a3,a4,a5,a6)

 //省略 var, 注意 := 左侧如果没有声明新的变量,就产生编译错误

 //var value int
 //value:='132' //报错  syntax error: unexpected :=, expecting }
 /*
 value1 :=21 //不会报错
 fmt.Println(value1)

多变量声明

代码语言:javascript
复制
 var b1,b2,b3 = 1,2,3
 fmt.Println(b1,b2,b3)

 b4,b5,b6 :=4,5,6 //不应该是已经声明的,否则会报错
 fmt.Println(b4,b5,b6)

声明全局变量

代码语言:javascript
复制
 var (
  b7 int
  b8 int
  b9 int
 )
 fmt.Println(b7,b8,b9)

交换两个变量

代码语言:javascript
复制
 var c1,c2 = 2,10
 c1,c2 = c2,c1  //10,2
 fmt.Println(c1,c2)

空白标识符_

代码语言:javascript
复制
 _,c2 = 10,2
 fmt.Println(c2)

语言常量

常量是一个简单值的标识符,在程序运行时,不会被修改的量。常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。

代码语言:javascript
复制
const identifier [type] = value
代码语言:javascript
复制
 //显式类型定义
 const d1 string = "123"
 //隐式类型定义
 const d2 = "1234"

多个相同的类型可以定义为:

代码语言:javascript
复制
 //多个相同的类型可以定义为:
 const name1,name2 = "詹","躲躲"
 fmt.Println(d1,d2,name1,name2) //123 1234 詹 躲躲

常量应用

代码语言:javascript
复制
 const WIDTH,HEIGHT = 10,20
 var area int
 area = WIDTH*HEIGHT
 fmt.Printf("面积为: %d",area) //面积为:200

常量枚举

代码语言:javascript
复制
 const (
  Unknown = 0
  Female = 1
  Male = 2
 )
 fmt.Println(Unknown,Female,Male)

内置函数 len(), cap(), unsafe.Sizeof()函数

代码语言:javascript
复制
 const (
  az = "abc"
  bz = len(az)
  cz = unsafe.Sizeof(a)
 )
 fmt.Println(a,b,c) 

iota,特殊常量

可以认为是一个可以被编译器修改的常量。iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。

代码语言:javascript
复制
 const (
  f1 = iota //计数 iota+=1  --->0
  f2        //计数 iota+=1  --->1
  f3 = iota //计数 iota+=1  --->2
  f4 = "12" //独立值  --->12
  f5 = true //独立值  --->true
  f6 = 100  //独立值  --->100
  f7 = iota  //计数 iota+=1  --->6
 )
 fmt.Println(f1,f2,f3,f4,f5,f6,f7) //0 1 2 12 true 100 6

算术运算符

代码语言:javascript
复制
 var g1,g2 = 10,20

 //加法
 fmt.Println(g1+g2) //30
 //减法
 fmt.Println(g1-g2) //-10
 //乘法
 fmt.Println(g1*g2) //200
 //除法
 fmt.Println(g1 / g2) //0
 //求余
 fmt.Println(g1%2) //0
 //自增
 g1++
 fmt.Println( g1 ) //11
 //自减
 g1--
 fmt.Println( g1 ) //10

关系运算符

代码语言:javascript
复制
 fmt.Println(123==23) //false
 fmt.Println(123>23) //true
 fmt.Println(123<23) //false
 fmt.Println(123!=23) //true

逻辑运算符

代码语言:javascript
复制
 var h1 bool = true
 var h2 bool = false
 fmt.Println((h1 && h2)) //false
 fmt.Println((h1 || h2)) //true
 fmt.Println(!(h1 && h2)) //true

运算符优先级

代码语言:javascript
复制
 /*
 优先级  运算符
 5  * / % << >> & &^
 4  + - | ^
 3  == != < <= > >=
 2  &&
 1  ||
 */

条件判断

代码语言:javascript
复制
 var i = 2
 if i>1 {
  fmt.Println("返回真")
 }else{
  fmt.Println("返回假")
 }

switch语句

代码语言:javascript
复制
 var grade string = "A"
 var score int = 90

 switch score {
  case 90: grade ="A"
  case 80: grade ="B"
  case 70: grade ="C"
  case 60: grade ="D"
  default: grade ="D-" 
 }

 switch grade {
  case "A": 
  fmt.Println("你的成绩为:优秀")
  case "B": 
  fmt.Println("你的成绩为:良好")
  case "C": 
  fmt.Println("你的成绩为:良好")
  case "D":
  fmt.Println("你的成绩为:及格")
  default: 
  fmt.Println("你的成绩为:不及格") 
 }
 //你的成绩为:优秀
 //fallthrough
 var j bool = true
  switch j{
  case true: 
  fmt.Println(true) //true
  fallthrough
  case false: 
  fmt.Println(false) //false
  fallthrough
  case true: 
  fmt.Println(true) //true
  fallthrough
  default:
  fmt.Println(false) //false
 }

元气满满的一天。明天继续打卡,继续开启GO之旅。

本文正在参与「掘金 2021 春招闯关活动」, 点击查看 活动详情

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 叫我詹躲躲 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Go语言环境搭建
  • 测试是否安装成功
  • 生成生成二进制文件
  • 格式化字符串 fmt.Sprintf
  • 数据类型
  • 多变量声明
  • 声明全局变量
  • 交换两个变量
  • 空白标识符_
  • 语言常量
  • 常量应用
  • 常量枚举
  • 内置函数 len(), cap(), unsafe.Sizeof()函数
  • iota,特殊常量
  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 运算符优先级
  • 条件判断
  • switch语句
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档