Golang小白自学Go——第一天基本结构和数据类型(The Way To Go)

第四章—基本结构和基本数据类型

自学Go所做的笔记,如有错误,请大佬指正!!!!谢谢大家!!!

4.1 文件名、关键字、标识符

  • 标识符:数字、字母、下划线,其中不能以数字开始(这与c语言的表示符命名规则相同)。
  • 符号 “_” :是一个特殊标识符,被称为特殊标识符,特点是,赋值个这一标识符的所有数据都会被抛弃。
  • Go语言中还有25个关键字

Go语言中。每个语句后不需要以分号";"结尾,但需要换行(这与python相似,但与python以缩进决定语句又不同)

4.2 基本结构和要素

  1. 必须在文件的开头指名这一文件属于哪个包(package main)
  2. 引入必要的包(import “packageName”)
  3. 编写main函数(这一与c语言相似)

下面hello world 的例子说明了Go语言所需的基本结构

package main // 声明属于哪一包

import "fmt" // 引入需要用到的包

func main(){
	fmt.Printfln("Hello world!")
}

包的引入格式

// 引入单独包
import "fmt"

// 因式分解引入多个包
import (
	"fmt"
	"os"
	"time"
	...
)

变量的可见性

以小写字母开头的标识符,对包外不可见;以大写字母开头的标识符,对包外可见。(这与java中的私有变量,公有变量类似)

注:Go中,你必须使用你所定义的所有变量。因为Go遵循“没有不必要的代码”这一原则!

Go注释:

  • “//” 表示单行注释
  • “/* */” 表示多行注释

4.3 类型

定义:变量(常量)包含数据,这些数据可以有不同的数据类型,简称类型

Go中基本类型:int、float、bool、string

Go中结构化类型:struct、array、slice、map、channel

Go中接口类型:interface

使用var关键字声明变量的值会自动初始化为该类型的零值。结构化类型初始化为nil(表示空)

使用关键字type可以自定义类型

// 自定义一个类型
type typeName type

// 因式分解自定义多个类型
type (
	typeName1 type
	typeName2 type
	typeName3 type
	....
)

类型转换

在Go语言中数据类型的转换必须显示转换。

/*
转化格式  valueOfTypeB = Typeb(valueOfTypeA)
*/
var a int = 10
var b float64 = float64(a)

注:进行类型转换时,应注意精度丢失

相同底层类型的变量之间可以相互转换

type IN int
var a IN = 5
var c int
c = int(a)
a = int(c)

4.4 常量

Go中常量使用关键字const定义,这与C语言相同

Go中常量只能为布尔型(bool)、整型(int)、浮点型(float)、复数、字符串型

// 定义格式
const identifier [type] = value

// 显式定义
const selfConst int =10

// 隐式定义
const selfConst = 10

注:常量的值必须在编译时就能确定,否则将会报错

常量还可以用做枚举

// 枚举实例
const (
	Unknow = 0
	Female = 1
	Male = 2
)

/*
使用iota进行枚举
iota初始值为0,每进行新的一行就自增1,
没有赋值的常量会默认使用上一行的赋值表达式
*/
const (
	Unknow = iota
	Female = iota
	Male = iota
)


4.4 变量

使用关键字 var 声明变量。

/*
变量声明格式:var identifier type
*/

// 逐一声明变量
var a int
var b bool
var str string

// 因式分解声明变量 (这个一般用于声明全局变量)

var(
	a int
	b bool
	str string
)

// 自动推断声明变量 (在声明自动推断变量,要同时进行赋值,否则直接报错)

// 自动推断声明变量格式:var identifier = value

// 逐一自动推断声明变量
var a = 1
var b = true
var str = "Hello World!"

// 因式分解自动推断变量

var (
	a = 1
    b = true
    str = "Hello World!"
    num int
)

使用 := 定义变量和初始化变量只能在函数体中使用。即 :=只能用于声明局部变量,局部变量定义了必须使用。

// 通一类型变量可以在同一行定义,和赋值
var a, b, c int
a, b, c = 1, 2, 3

// 交换变量
a, b = b, a

4.5 指针

指向一个值的内存地址。

Go中使用符号 & 获取变量的地址, 使用符号 * 解地址

// 指针变量定义 var identidier *type

注:指针不能用于获取常量的地址

自学Go所做的笔记,如有错误,请大佬指正!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

West_East

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值