go语言编程
package 指明源文件所在的包
func 用于定义函数
go里面除了for循环的初始化用到;,其他大部分都不需要
go中没有while循环,不过可以利用 for condition来模拟while
编译:
go builde 编译的文件名
定义一个变量,比如字符串
var s string = ""
go也自动推导出类型
var s = "";
也可以 s:=""
:=用在值声明并且初始化
05 package main 07 import ( 08 "os" 09 "flag" // command line option parser 10 ) 12 var omitNewline = flag.Bool( "n" , false , "don't print final newline" ) 14 const ( 15 Space = " " 16 Newline = "\n" 17 ) 19 func main() { 20 flag.Parse() // Scans the arg list and sets up flags 21 var s string = "" 22 for i := 0; i < flag.NArg(); i++ { 23 if i > 0 { 24 s += Space 25 } 26 s += flag.Arg(i) 27 } 28 if !*omitNewline { 29 s += Newline 30 } 31 os.Stdout.WriteString(s) 32 } |
go语言除了C有的int ,float,还有int8,int32,int32跟int同样大小,但是跟int不同,byte跟int8同样大小,类型也一样
s:="string"有点类似于C语言的char *str = "string",这样是不允许修改字符串内容的,只能更改str的指向
如果要创建可以修改的字符串,必须使用数组
声明一个数组 s:= []int{1,2,3}
var arrayOfInt [3] int{1,2,3},定义数组,不过arrayofint不能退化成指针
a:= [2][2]int{ [2]int{1,2},[2]int{3,4}}
slice
s:= [3]int{1,2,3};
sl = s[1:2];
fmt.Printf("%d\n",sl[0])
输出是2
go中的map要使用make来创建
可以用range来遍历数组,map,slice
for _;days = range monthdays {
fmt.Printf("%d\n",days);
}
函数:
def func(xs []int)
这个函数是传入一个splite而不是数组,在使用这个函数的时候:fun(array[:])而不是func(array),会提示无法把array转化为 []int
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述