首页 > 其他分享 >(转)[Journey with golang] 1. Basic knowledge

(转)[Journey with golang] 1. Basic knowledge

时间:2023-02-05 17:11:59浏览次数:47  
标签:map knowledge c++ golang Journey go main 切片

原文:https://www.cnblogs.com/JHSeng/p/12128461.html

这一章介绍golang的一些基础知识。golang写起来跟c++很不一样,在我看来,它更像是c++/java/python的混合体,再经过一系列增删之后的东西。

golang最大的特点就是简洁,仅有25个关键字;它虽然是一门静态语言,但支持运行时动态类型;它不仅是强类型语言,还支持隐式类型推导。golang不支持泛型,但支持反射。golang自带gc,并原生支持协程。

1 package main 2 3 import "fmt" 4 5 func main() { 6 fmt.Println("Hello, world!") 7 }

第一行定义了一个名为main的package,它是可执行程序的包名。所有go代码头部必须有一个包声明语句,go通过包来管理命名空间。

第三行import引用一个外部包fmt,这是标准IO包。可以通过import来引用标准库、第三方甚至是自定义的包。

其他行的含义都十分显然。

go源代码特点非常明显:以.go为后缀;默认UTF8编码;忽略分号;函数以func开头,且与{同行;main函数所在的包包名必须为main。

go的基本数据类型与c++相比稍有变化,值得注意的是字符不是char,而是rune。

bool不能与int相互转换。

不同类型的int必须进行强制类型转换。

浮点数字面量被自动推断为float64.

字符串与java的string一样,都是常量。但可以通过切片来操作。尾部不包含空字符。对字符串的切片操作返回的子串依然是string而不是slice。

go支持指针。结构体指针访问结构体字段时依然用.而不是->。golang没有->这一操作符。

golang为切片维护三个元素:指向底层数组的指针、切片元素数量和底层数组容量。可以通过数组和内置函数make来创建slice。

map可以通过字面量创建,也可以通过make函数创建。golang内置的map并不是并发安全的,可以通过使用标准包sync里的map来解决。map value的某个元素不能被单独修改,只能通过把value整体替换来解决。

struct中的类型可以为任意类型;struct的存储空间是连续的,其字段按照声明时的顺序存放,字段之间有对齐要求。

golang代码的顺序并不一定是编译后最终可执行程序的指令顺序。

golang只有for循环。

其他内容比较基础,不再赘述。

标签:map,knowledge,c++,golang,Journey,go,main,切片
From: https://www.cnblogs.com/liujiacai/p/17093606.html

相关文章

  • Golang入门第三天
    获取命令行参数init函数局部变量和全局变量变量的内存和变量的地址指针变量的使用new函数的使用值传递引用传递随机数的使用数组切片map结构体可见性规则p......
  • golang入门
    golang第一次学习数据类型序号类型和描述1布尔型布尔型的值只可以是常量true或者false。一个简单的例子:varbbool=true。2数字类型整型int和浮......
  • golang笔记
    手册网站:https://studygolang.com/pkgdocos.OpenFile("./app.log",os.O_CREATE|os.O_RDWR|os.O_APPEND,0644)app.log是文件名字,os.O_CREATE|os.O_RDWR|os.O_APPEND是......
  • golang context上下文值传递与控制
    1.Context详解在Go语言中context包允许传递一个“context”到程序中。Context如超时或截止日期(deadline)或通道,来指示停止运行和返回。例如,如果正在执行一个web......
  • 【小记】如果 golang 内存不够了怎么办
    在看redis1.0源码时,总会看到需要申请内存的地方,如果申请不到需要大的内存就会返回NULL,然后在调用层抛出oom。比如listDup中在复制特殊value或者加入新节点时都有......
  • Golang入门第二天
    选择结构循环结构流程控制类型转换类型别名函数调用函数类型匿名函数和闭包回调函数packagemainimport( "fmt")//函数1funcdemo1(){ fmt.Println(......
  • [golang]filepath.Glob的缺陷,不支持多级目录
    最近在使用Gin框架的模板加载过程中,发现其对于多级子目录中的模板支持有问题(仅仅支持一级子目录),后经过查看其源码发现是filepath包的Glob方法的问题。下面先说结论:多......
  • Golang入门第一天
    变量的使用自动推导类型多重赋值和匿名变量常量的使用多重变量或常量的定义iota枚举bool布尔类型浮点型字符类型字符串类型字符类型和字符串类型的区别复数类......
  • (转)Golang sort包排序(详细全集)
    原文:https://blog.csdn.net/qq_43279457/article/details/121730095一、整型首先用下里面提供的最简单的例子,排序一下整形packagemainimport( "fmt" "sort")funcmai......
  • 千姿百态,瞬息万变,Win11系统NeoVim打造全能/全栈编辑器(前端/Css/Js/Vue/Golang/Ruby
    我曾经多次向人推荐Vim,其热情程度有些类似现在卖保险的,有的时候,人们会因为一些弥足珍贵的美好暗暗渴望一个巨大的负面,比如因为想重温手动挡的快乐而渴望买下一辆二十万公里......