Skip to content

Commit

Permalink
golang go基础撰写
Browse files Browse the repository at this point in the history
  • Loading branch information
wangtunan committed Jun 26, 2024
1 parent f1d76e7 commit 87c6ea8
Show file tree
Hide file tree
Showing 3 changed files with 127 additions and 2 deletions.
10 changes: 10 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"cSpell.words": [
"vuepress",
"leetcode",
"wangtunan",
"Gorm",
"gorm",
"instanceof"
]
}
2 changes: 1 addition & 1 deletion docs/.vuepress/configs/nav.js
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ const booksNav = [
// golang导航
const golangNav = [
{
text: 'Golang',
text: 'Golang技术栈',
children: [
{
text: 'Go基础',
Expand Down
117 changes: 116 additions & 1 deletion docs/golang/base/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,119 @@ sidebar: auto
---

# Go基础
Go基础

## 约定规则
Go中有一些约定的规则:
* 每个`.go`文件必须有一个包名,例如`package main`,其中`main`即为包名。
* 严格区分大小写,大写开头的变量、常量或者方法可跨包访问。
* 双引号代表字符串,单引号代表字符,例如:`"abc"``'a'`
* 不需要写分号。

## 注释
```go
package main
/*
这是一个main函数的多行注释
多行注释
多行注释
*/
func main() {
// 这是单行注释
fmt.Print("main")
}
```

## 变量和常量
变量和常量分别使用`var``const`关键词来定义。

### 定义方式
`var`变量定义方式如下:
```go
var v1 int // 变量名 + 指明类型
var v2 int = 2 // 变量名 + 指明类型 + 初始值
var v3 = 3 // 变量名 + 初始值(自动推导类型)
v1 = 1 // 仅赋值
v4 := 4 // 不需要关键词且自动推导类型(推荐)

// 使用括号定义多个变量
var (
v5 = 5
v6 int
v7 int = 7
)
```
`const`常量定义方式如下:
```go
const v1 int = 1 // 常量名 + 指明类型 + 初始值
const v2 = 2 // 常量名 + 初始值(自动推导类型)
v3 := 3 // 不需要关键词且自动推导类型(推荐)

// 使用括号定义多个常量
const (
v4 = 4
v5 int = 5
)
```

### 全局变量(常量)
`.go`文件中,定义在最外层的变量、常量,在整个文件中都可以使用,它们叫这个包的全局变量(常量)。
```go
var mainGlobalVar = "global"

func main() {
fmt.Printf("global var is %s", mainGlobalVar)
}
```

### 跨包变量(常量)
跨包变量(常量),必须满足以下两个条件:
* 为全局变量(常量)。
* 必须大写开头,小写开头的变量(常量)被认为是这个包的私有变量(常量),不能被访问。

`math/math.go`文件代码:
```go
package goMath

const PI = 3.1415926

func main() {

}
```

`main.go`文件代码:
```go
package main

import (
"fmt"
goMath "go-learn/math"
)

func main() {
fmt.Printf("pi var is %f", goMath.PI)
}
```

## 基本数据类型
`Go`中,如果定义变量时没有赋初始值,则会根据其具体类型赋默认值。

`bit`:比特位,二进制中的一位,信息的最小单位。
`byte`: 字节,1 byte = 8 bit。

### 整数型
分为有符号和无符号整数两种,例如:`int`(有符号),`uint`(无符号)。

有符号和无符号的区别时,有符号整数第一个`bit`位会用来存放正负符号(0表示正数,1表示负数),所以它所表示的最大数字要比无符号的整数要小。
* 有符号:`00000101`,十进制`5`; `10000101`,十进制`-5`
* 无符号:`00000101`,十进制`5`; `10000101`,十进制`133`

### 浮点型

### 字符型

### 布尔型

### 字符串型

## 指针

0 comments on commit 87c6ea8

Please sign in to comment.