Go——基础语法

目录

Hello World!

变量和常量

变量交换

匿名变量

常量

iota——特殊常量

基本数据类型

数据类型转换

运算符

算数运算符

 关系运算符

逻辑运算符

位运算符号

​编辑

 赋值运算符

 输入输出方法

流程控制

函数

 可变参数类型

值传递和引用传递


Hello World!

在电脑下载好GoLand后运行并创建一个go文件输入如下代码,导入一个系统包fmt用来输出。

这里的入口函数默认也是main函数。

import "fmt"func main() {fmt.Println("hello world")
}

变量和常量

定义变量使用var关键字

变量定义的标准格式如下,如果不指定值的话就是默认值,变量明明使用驼峰命名法。

var 变量名 变量类型var (name stringage intaddr string
)
import "fmt"func main() {var (name string = "北岭山脚鼠鼠"age  int    = 21addr string = "")
// 语法糖,可以自动推导类型,但必须是之前没有出现过的变量
name: ="北岭山"
age:= 21fmt.Println(name)
}
func main() {name := "北岭山脚鼠鼠"age := 21addr := ""fmt.Println(name, age, addr)fmt.Printf("name:%T,age:%T\n", name, age) //查看类型fmt.Printf("name:%s,age:%d\n", name, age) //获取值fmt.Printf("name:%p,age:%p", &name, &age) //获取地址}

变量交换

func main() {var a int = 100var b int = 200//传统交换//tmp := a//b = tmp//a = b//go交换a, b = b, afmt.Print(a, b)
}

匿名变量

可以用于接收任何类型的变量,但是后续都无法使用。

func test() (int, int) {return 100, 200
}func main() {a, _ := test()_, b := test()fmt.Print(a, b)  //输出100,200
}

常量

类型:bool ,int ,float:32,float:64,string,复数型 

把var 改成const就是常量的定义方式。

	const url string = "www.yhy2002.com" //显式定义const url2 = "yhy2002.com"           //隐式定义url3 := "hyh2002.com"const a,b,c="y","h","y"fmt.Print(url3)

iota——特殊常量

 

func main() {const (a = iotadeb = iotafc = iota)const (g=iota)fmt.Print(a, b, c,g)
}

得到结果如下

0,3,5,0

基本数据类型

整型如下有

别名

 浮点数有如下

func main() {const (a bool    = trueb int     = 5c float64 = 5.2d string  = "北岭山脚鼠鼠")fmt.Printf("%t,%d,%.6f,%s", a, b, c, d+d)
}

数据类型转换

并且只能由范围小的转到范围大的,大转小会有精度丢失

func main() {a := 3c := float64(a)fmt.Print(c)
}

运算符

算数运算符

 关系运算符

逻辑运算符

位运算符号

 赋值运算符

 输入输出方法

	var a intvar b float64fmt.Println() //打印并换行//fmt.Printf()  //格式化输出fmt.Print() //打印输出//fmt.Scanln(&a, &b) //fmt.Scanf("%d,%f", &a, &b) //接收格式化输入 作业fmt.Scan(&a) //接收输入作业

流程控制

if 条件1 {}else if 条件2{}else {}switch 条件1{  //默认case最后自带breakcase 值1:fallthrough  //不管下一个条件是否满足都会执行下一条语句case 值2:case 值3:default:}
	for i:= 1;i<=5;i++{continuebreak}
//遍历stringstr := "abcd"len := len(str)for i := 0; i < len; i++ {fmt.Printf("%c", str[i])}for i, v := range str {fmt.Printf("%d,%c", i, v)}

函数


func get(a int, b string) (string,int){fmt.Printf("yhy")return "yhy",231
}

 可变参数类型

func get(a ...int) (string, int) {fmt.Printf("yhy")return "yhy", 231
}

值传递和引用传递

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/21373.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git 工具出现克隆库失败详解

Git 工具出现克隆库失败详解 现象 错误字符串&#xff1a;git unable to access xxx: Encountered end of 原因 总体来说出现这个原因通常是因为网络连接的问题。具体的有以下几个方面 远程仓库不存在&#xff1a;检查所指定的远程仓库是否存在&#xff0c;确保仓库名称、U…

TortoiseGit的安装和使用

1、TortoiseGit的下载安装 安装说明:因为TortoiseGit 只是一个程序壳,必须依赖一个 Git Core,所以安装前请确定已完成git安装和配置。 TortoiseGit下载地址 https://download.tortoisegit.org/tgit/ ,最新稳定版本2.11.0.0。 点进去下载程序包和语言包(非必须),安装时…

记录一次nginx日志偶现502报错排查

背景 之前的业务链路 负载均衡–>nginx–>cvm&#xff08;业务后端node&#xff09; 上云后链路 负载均衡–>nginx–>pod&#xff08;业务后端node&#xff09; 上云后nginx日志隔几个小时就出现一波502&#xff0c;查看nginx的日志有两个特征&#xff0c;就是re…

HarmonyOS元服务开发

一、什么是HarmonyOS系统 HarmonyOS是华为开发的一款面向未来的全场景分布式智慧操作系统&#xff0c;将逐步覆盖18N全场景终端设备&#xff0c;用一个软件系统解决大量智能终端体验割裂的问题 1&#xff1a;智能手机 …

flutter开发实战-css的linear-gradient的值转换成LinearGradient

flutter开发实战-css的linear-gradient的值转换成LinearGradient 在开发中遇到了参照前端的css的属性值&#xff0c;需要将css的linear-gradient值转换成LinearGradient&#xff0c;这样可以直接设置相应的值。这里暂时不涉及到&#xff0c;颜色值名称、color-stop1&#xff0…

计算机毕设 大数据房价数据分析及可视化 - python 房价分析

文章目录 1 课题背景2 数据爬取2.1 爬虫简介2.2 房价爬取 3 数据可视化分析3.1 ECharts3.2 相关可视化图表 4 最后 1 课题背景 房地产是促进我国经济持续增长的基础性、主导性产业。如何了解一个城市的房价的区域分布&#xff0c;或者不同的城市房价的区域差异。如何获取一个城…

前端各种方法自我整理

Javascript方法 slice [slaɪs]切片 slice (-2)取出数组中倒数两个植变生成一个新数组 slice(0&#xff0c;3)取出数组下标0到下标3的值&#xff0c;生成新数组 注意&#xff1a;slice不会改变数组的长度 includes [ɪnˈkluːdz]包含 查看数组或字符串内是否有该值&…

MySQL的下载、安装和配置(图文详解)

目录 一、MySQL的4大版本 二、软件的下载 1. 下载地址 2. 打开官网&#xff0c;点击DOWNLOADS 3. 点击 MySQL Community Server 三、MySQL8.0 版本的安装 四、配置MySQL8.0 五、配置MySQL8.0 环境变量 六、MySQL5.7 版本的安装、配置 一、MySQL的4大版本 MySQL Commu…

【C++】红黑树

目录 1、红黑树的概念2、红黑树的性质及定义3、红黑树的插入操作 1、红黑树的概念 红黑树是一种二叉搜索树&#xff0c;但在每个节点上增加一个存储位表示节点的颜色&#xff0c;可以是red或black。通过对任何一条从根到叶子的路径上各个节点着色方式的限制&#xff0c;红黑树…

基于非支配排序遗传算法NSGAII的综合能源优化调度(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【Nginx】proxy_set_header的变量与X-Forwarded-For伪造客户端IP漏洞

前言 上面突然说&#xff0c;需要检查Nginx反向代理的安全问题并给出了修改方法&#xff0c;小白的我一脸懵逼&#xff0c;明明都是中文&#xff0c;连在一起咋就看不明白了。于是乎&#xff0c;对着修改内容简单学习了一下&#xff0c;在此做个记录&#xff0c;如有问题请大佬…

【USRP X410】LabVIEW参考架构软件,用于使用Ettus USRP X410对无线系统进行原型验证

LabVIEW参考架构软件&#xff0c;用于使用Ettus USRP X410对无线系统进行原型验证 设备 1 MHz to 7.2 GHz&#xff0c;400 MHz带宽&#xff0c;GPS驯服OCXO&#xff0c;USRP软件无线电设备 - Ettus USRP X410集成硬件和软件&#xff0c;可帮助您制作高性能无线系统的原型&…