上传文章网站,如何快速制作一个网站,视频宣传片免费模板,网站建设申报方案1,包管理
一个文件夹可以称为一个包
在一个包里面可以创建多个文件
包中可以创建包
同一个包内的同一级的包的名字要相同
如:包a中的包b.包b中的包得是同一个package,a中和包b同级的包名字也得是一个名字 必须要有一个main包,入口,就像是c必须有一个main函数
如果没有mai…1,包管理
一个文件夹可以称为一个包
在一个包里面可以创建多个文件
包中可以创建包
同一个包内的同一级的包的名字要相同
如:包a中的包b.包b中的包得是同一个package,a中和包b同级的包名字也得是一个名字 必须要有一个main包,入口,就像是c必须有一个main函数
如果没有main,就只能生成一个包的文件,不生成可执行文件 同一个包中同一级的不用去相互包含就可以调用对应文件,但是如果是想要调用当前包下一级的包,就需要import 引入
在文件中的函数的名字首字母大写则可以通过引入后给外部使用,如果是小写就不能让外部使用 2,输出
使用fmt包来输出
fmt.Print/fmt.Println
如果是print和println,本质是从stderr中获取内容(不推荐)
格式化输出(和c的print差不读)
%s用来替换文本,%d用来替换整型.%f用来替换小数,%.2f表示精确到小数点后2位
Fmt.Sprintf() 是根据格式化参数来返回字符串的
比如: var a2025-01-08 var b”data:” var c”%s is %s” var dfmt.Sprintf(c,b,a) fmt.println(d) 会输出data is 2025-01-08
3,标识符 不可以以内置的类型名等来作标识符,不可以数字开头,不可以有运算符 4数据类型
布尔型 var a bool true 数字类型
有float32,float64,int16,int,uint等等 var a int 3 字符串类型 var s string 3131s 其他的派生类型
指针类型:指针是一个变量其值为另一个变量的内存地址。 var n10 var np*int n 数组类型:数组是一个固定长度的、具有相同类型元素的序列。数组的长度在声明时就确定并且在其生命周期内不能改变。 var nums[5 ] int 结构化类型:结构体是一种用户自定义的数据类型它可以将不同类型的数据组合在一起形成一个新的复合类型。
channel类型:通道用于在 Go 协程goroutine之间进行通信和同步是 Go 语言实现并发编程的重要机制.通道提供了一种在不同协程之间安全传递数据的方式。
函数类型:在 Go 语言中函数是一等公民这意味着函数可以像其他类型的变量一样被赋值、传递和作为返回值。 func add(a, b int) int { return a b } 切片类型:切片是对数组的一个动态视图它提供了一种灵活、高效的方式来操作数组的一部分。与数组不同切片的长度是可变的。 var sl [] int strs [] string {red,green} 接口类型:接口是一种抽象类型它定义了一组方法的签名但不包含方法的实现。
下面的例子就定义了一个animal的接口,里面包含了一个speak的方法,之后实现了speak方法 type Animal interface { Speak() string } type Dog struct { name string } func (d Dog) Speak() string { //这里的d是接收器变量 return Woof! } type Cat struct { name string } func (c Cat) Speak() string { return Meow! } func makeSound(a Animal) { fmt.Println(a.Speak()) } Map类型:映射是一种无序的键值对集合通过键可以快速地查找对应的值。映射的键必须是支持 比较运算符的类型 5,变量
变量的声明:一般是使用var来声明
1,指定变量的类型,可以没有初始化,没有初始化时,会使用系统默认的零值 var s v_type
s value数值类型 :0
布尔类型::false
字符串为
以下几种类型为 nil
var a *int//指针
var a []int//切片
var a map[string] int //map
var a chan int //通道
var a func(string) int //函数
var a error //接口
2,不给类型,需要根据值自行判断,这个时候就必须初始化 var flagtrue 3,使用:来初始化//不可以给全局变量赋值 n :1 s:abc 可以多个变量一同声明 var s1,s2,s3 www,wwwww,wwwwwww s4,s5,s6aa,bb,3 //不用声明类型,可自行判断 全局变量声明
var ( a int b bool s string ........
) 值类型和引用类型
通常我们使用的数据类似int,string 都是值类型,是从内存中拷贝一份来用的,当我们进行赋值时,本质只是复制了一个拷贝 var num1100 var num2num1 num210 fmt.Println(num2)//输出10 fmt.Println(num1)//输出100 var num3num1 *num31 fmt.Println(*num3)//输出1 fmt.Println(num1)//输出1 常量
在程序运行时不会被修改的量。
const 标识符 类型 值 const length 40 常量枚举,枚举中可以使用内置函数 const ( a aaa b len(a)//3 c unsafe.Sizeof(a)//16 ) 重要:字符串类型在 go 里是个结构体, 包含指向底层数组的指针和长度,这两部分每部分都是 8 个字节所以字符串类型大小为 16 个字节。 一些注意:
1,如果你定义了一个变量,但是没有使用,(赋值不是使用)会报错
2,可以使用a,bb,a来交换两个变量
3,_可以表示丢弃值 : _,b1,2 这里只有b2,1被丢弃了
4,如果一个函数返回多个值,可以使用并行的方式来获得
a,bfunct()