登 录
注 册
< 编程语言
Python
Java
Go
SQL
数据结构与算法
Go语言介绍及安装
Go常见语法及简单Demo
Go数据类型
Go函数与方法
热门推荐>>>
中台架构
中台建设与架构
Hadoop
源码分析-NN启动(三)
HBase
HBased对接Hive
Linux
Nginx高可用
Python
数据导出工具
Flink
3分钟搭建Flink SQL测试环境
Kafka
Kafka对接Flume
深度学习
卷积神经网络
数据结构与算法
选择合适的算法
MySQL
数据备份恢复
计算机系统
信号量同步线程
Hive
Hive调优参数大全
其他框架
Azkaban Flow1.0与2.0
ClickHouse
表引擎-其他类型
技术成长
最好的职业建议
精选书单
技术成长书单—机器学习
技术资讯
数据在线:计算将成为公共服务
开发工具
IntelliJ IDEA 20年发展回顾(二)
系统工具
Mac命令行工具
虚拟化
内存虚拟化概述
云原生
云原生构建现代化应用
云服务
一文搞懂公有云、私有云...
Java
Spring Boot依赖注入与Runners
SQL
SQL模板
安全常识
一文读懂SSO
当前位置:
首页
>>
Go
>>
Go常见语法及简单Demo
Go常见语法及简单Demo
2023-09-10 18:31:56 星期日 发表于北京 阅读:597
![](/static/images/article_images/1694341578.117407.jpeg) 本文详细解释Go语言的常用的一些术语及简单程序的demo #### 指针 使用&操作符可以获取一个变量的地址,使用*操作符可以获取指针引用的变量的值。但是指针不支持算术运算。 #### 库(库) Go自带一个可扩展并且实用的库,在写程序之前,看看是否已经有现成的包。以下两个地方可以找到一些有用的包。 >标准包的索引:https://golang.org/pkg 社区贡献的包:https://godoc.org 使用go doc工具可以方便地通过命令行访问这些文档 `$ go doc http.Get` #### 名称 不管是函数还是变量的命名规则:名称的开头是字母或者下划线。后面可以跟任意数量的字符或者数字下划线。 >实体名称第一个字母大写表示是导出的,也就是对包外是可见可访问的。 名称的作用域越大,使用越长且更有意义的名称 单词组合时使用驼峰命名法 #### 声明 |声明类型|关键字| |-|-| |变量声明|var| |常量声明|const| |类型声明|type| |函数声明|func| #### 导入自定义包 1、先展示下整体的项目结构 ``` $ echo $GOPATH /Users/alibins/go $ cd $GOPATH $ tree └── src ├── learning_go │ └── scripts │ ├── hello.go │ └── mylib.go └── webapi ├── myapis │ └── apis.go └── webapi.iml 5 directories, 4 files ``` 可以看出有两个Go项目:learning_go和webapi 现在的需求是webapi里面的apis.go文件里想引用learning_go项目里scripts包的变量和方法 2、hello.go文件和mylib.go文件里声明所属的包名称(也就是上级目录scripts),下面分别是两个文件里的内容 learning/scripts/hello.go ``` package scripts // 声明该文件所属的包 var Slb = "beijing" // 变量名首字母大写可被外部包调用 func Scity(s string) string { return Slb + s } ``` learning/scripts/mylib.go ``` package scripts // 声明该文件所属的包。与hello.go属于同一个包 func Mylibs() string { return "my list is string" } ``` 3、另一个项目的包引用上面自定义的包 创建webapi项目及myapis子目录,其中apis.go文件的内容如下 ``` /* webapi/myapis/apis.go */ package main import ( "fmt" "learning_go/scripts" // 导入自定义的包 ) var s = scripts.Slb // 访问自定义包的Slb变量 func main(){ fmt.Println(scripts.Scity(s)) // 访问自定义包的Scity方法,来自hello.go文件 fmt.Println(scripts.Mylibs()) // 访问自定义包的Mylibs方法,来自mylib.go文件 ``` #### 声明变量的四种方法(一般使用前两种) ``` s := "" // 显式初始化说明变量的值的重要性,主要用在局部变量的声明和初始化 var s string // 隐式初始化表明这个变量的值不重要 var s = "" var s string = "" ``` Go代码格式化工具(安装完go自带的工具) `gofmt hello.go` #### DEMO-1:实现echo输出命令行参数 ``` //myecho1.go package main import ( "fmt" "os" ) func main() { var s, sep string for i := 1; i < len(os.Args); i++ { s += sep + os.Args[i] sep = " " } fmt.Println(s) } ``` 执行如下命令 ``` $ go run myecho1.go a b c de f ``` 输出 a b c de f