Go——基础语法

news2024/11/25 7:09:55

目录

Hello World!

变量和常量

变量交换

匿名变量

常量

iota——特殊常量

基本数据类型

数据类型转换

运算符

算数运算符

 关系运算符

逻辑运算符

位运算符号

​编辑

 赋值运算符

 输入输出方法

流程控制

函数

 可变参数类型

值传递和引用传递


Hello World!

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

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

import "fmt"

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

变量和常量

定义变量使用var关键字

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

var 变量名 变量类型

var (
    name string
    age int
    addr string
)
import "fmt"

func main() {
	var (
		name string = "北岭山脚鼠鼠"
		age  int    = 21
		addr string = ""
	)
// 语法糖,可以自动推导类型,但必须是之前没有出现过的变量
name: ="北岭山"
age:= 21
	fmt.Println(name)
}
func main() {

	name := "北岭山脚鼠鼠"
	age := 21
	addr := ""

	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 = 100
	var b int = 200
	//传统交换
	//tmp := a
	//b = tmp
	//a = b

	//go交换
	a, b = b, a
	fmt.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 = iota
		d
		e
		b = iota
		f
		c = iota
	)
	const (
		g=iota
	)
	fmt.Print(a, b, c,g)
}

得到结果如下

0,3,5,0

基本数据类型

整型如下有

别名

 浮点数有如下

func main() {
	const (
		a bool    = true
		b int     = 5
		c float64 = 5.2
		d string  = "北岭山脚鼠鼠"
	)

	fmt.Printf("%t,%d,%.6f,%s", a, b, c, d+d)
}

数据类型转换

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

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

运算符

算数运算符

 关系运算符

逻辑运算符

位运算符号

 赋值运算符

 输入输出方法

	var a int
	var b float64

	fmt.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最后自带break
    case 值1:

        fallthrough  //不管下一个条件是否满足都会执行下一条语句
    case 值2:

    case 值3:

    default:

}

	for i:= 1;i<=5;i++{
        continue
        break
	}
//遍历string
	str := "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.coloradmin.cn/o/746906.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

性能测试 jmeter 的 beanshell 脚本的 2 个常用例子

目录 前言&#xff1a; Bean Shell 内置变量大全 例子 1 例子 2 技巧 前言&#xff1a; JMeter是一个功能强大的性能测试工具&#xff0c;而Beanshell是JMeter中用于编写脚本的一种语言。 在利用 jmeter 进行接口测试或者性能测试的时候&#xff0c;我们需要处理一些复杂…

使用GithubAction自动构建部署项目

GitHub Actions 是一种持续集成和持续交付(CI/CD) 平台&#xff0c;可用于自动执行生成、测试和部署管道。 您可以创建工作流程来构建和测试存储库的每个拉取请求&#xff0c;或将合并的拉取请求部署到生产环境。 GitHub Actions 不仅仅是DevOps&#xff0c;还允许您在存储库中…

基于linux下的高并发服务器开发(第一章)-GCC(2)1.3

04 / gcc 和 g的区别 gcc 和 g都是GNU&#xff08;组织&#xff09;的一个编译器 【误区一】&#xff1a;gcc只能编译 C 代码&#xff0c;g 只能编译 c 代码。两者都可以&#xff0c;请注意&#xff1a; 后缀为 .c 的&#xff0c;gcc 把它当做是 C 程序&#xff0c;而 g 当做是…

Debezium系列之:prometheus采集debezium的jmx数据,grafana通过dashboard展示debezium的jmx数据

Debezium系列之:prometheus采集debezium的jmx数据,grafana通过dashboard展示debezium的jmx数据 一、需求背景二、实现的效果三、导出debezium jmx四、debezium jmx重要指标五、部署prometheus和grafana六、Debezium MySQL Connector的dashboard七、debezium-dashboard.json八…

二叉树(上)——“数据结构与算法”

各位CSDN的uu们好呀&#xff0c;好久没有更新我的数据结构与算法专栏啦&#xff0c;今天&#xff0c;小雅兰继续来更新二叉树的内容&#xff0c;下面&#xff0c;让我们进入链式二叉树的世界吧&#xff01;&#xff01;&#xff01; 二叉树链式结构的实现 二叉树链式结构的实现…

性能测试工具 Jmeter 测试 Dubbo 接口脚本编写

目录 前言&#xff1a; 1、背景 2、工具准备 3、创建一个 maven 项目&#xff0c;此处可以创建一个 quickstart&#xff0c;参考截图 4、以上配置完毕后&#xff0c;开始撸代码 5、上面那个类是不需要从 jmeter 中获取参数&#xff0c;如果要从 jmeter 中获取相关的参数&…

低代码在边缘计算工业软件中的应用

近年来&#xff0c;边缘计算给工业现场带来了许多新的变化。由于计算、储存能力的大幅提升&#xff0c;边缘计算时代的新设备往往能够胜任多个复杂任务。另外&#xff0c;随着网络能力的提升&#xff0c;边缘设备与设备之间、边缘设备与工业互联网云平台之间的通讯延迟与带宽都…

Flowable边界事件-信号边界事件

信号边界事件 信号边界事件一、定义1. 图形标记2. 设置信号 选择信号3. XML标记 二、测试用例2.1 定时边界事件xml文件2.2 信号边界事件测试用例 总结 信号边界事件 一、定义 接收到信号触发事件 1. 图形标记 2. 设置信号 选择信号 3. XML标记 定时边界事件的XML <signal…

JMeter进行WebSocket压力测试

背景 之前两篇内容介绍了一下 WebSocket 和 SocketIO 的基础内容。之后用 Netty-SocketIO 开发了一个简单的服务端&#xff0c;支持服务端主动向客户端发送消息&#xff0c;同时也支持客户端请求&#xff0c;服务端响应方式。本文主要想了解一下服务端的性能怎么样&#xff0c;…

驱动开发-day9

驱动代码&#xff1a; #include <linux/cdev.h> #include <linux/device.h> #include <linux/fs.h> #include <linux/gpio.h> #include <linux/init.h> #include <linux/interrupt.h> #include <linux/module.h> #include <linu…

Hystrix熔断器

雪崩 当山坡积雪内部的内聚力抗拒不了它所受到的重力拉引时&#xff0c;积雪便向下滑动&#xff0c;引起⼤量雪体崩塌&#xff0c;人们把这种自然现象称作雪崩 微服务中&#xff0c;一个请求可能需要多个微服务接口才能实现&#xff0c;会形成复杂的调用链路 …

在Linux下通过MySQL二进制包安装MySQL5.7

在Linux下通过通用压缩包安装MySQL5.7 卸载MySQL 如果是第一次安装MySQL&#xff0c;在安装MySQL前&#xff0c;知道如何卸载MySQL是很有必要的。因为在安装过程中可能会 遇到各种各样的问题&#xff0c;自己玩的话 卸载重装即可。 1. find / -name mysql 查看MySQL相关包…

Layui之动态树 左侧树形菜单栏 详细全面

⭐ฅʕ•̫͡•ʔฅ本期看点&#xff1a;该篇是运用Layui框架来编写后台树形菜单栏&#xff0c;并且结合MySql来编写完成 目录 一.效果图 二.具体步骤 2.1 数据库 2.2 树形导航栏 第一个类&#xff1a;Treevo 第二个类&#xff1a;BuildTree&#xff1a; 2.3 Dao方法 2.3.…

【自我提升】Spring Data JPA之Specification动态查询详解

写在前面&#xff1a;刷完Spring Data JPA的课后&#xff0c;发现Specification动态查询还挺有意思的&#xff0c;还应用到了规约设计模式&#xff0c;在此记录下学习过程和见解。 目录 一、应用场景 二、源码解析 三、规约模式 四、实际应用 一、应用场景 1. 简介 有时我…

Linux中安装Tomcat

前提条件&#xff1a; 虚拟机中已经提前安装好jdk1.8。 安装步骤&#xff1a; 1.下载安装包 首先去Apache官网下载&#xff08;Apache Tomcat - Apache Tomcat 9 Software Downloads&#xff09; 2.上传到 linux 中&#xff0c;我这里上传的目录是&#xff1a; /opt 3. 解压…

element-plus坑总结

reactive和ref对比 // 定义变量 import { reactive } from vue; const person reactive({name: "John",age: 25, });// 赋值修改 person.name "Tom"; person.age 26;// 使用变量 <div>{{ person.name }}</div> <button click"perso…

layui介绍以及登录功能的实现

一. layui简介 1.1 layui介绍 Layui 是一套开源免费的 Web UI 组件库&#xff0c;采用自身轻量级模块化规范&#xff0c;遵循原生态的 HTML/CSS/JavaScript 开发模式&#xff0c;非常适合网页界面的快速构建。Layui 区别于一众主流的前端框架&#xff0c;它更多是面向于后端开…

3、Linux-进程管理类

进程管理类 进程是正在执行的一个程序或命令&#xff0c;每一个进程都是一个运行的实体&#xff0c;都有自己的地址空间&#xff0c;并占用一定的系统资源。 7.10.1 ps 查看当前系统进程状态 ps:process status 进程状态 1&#xff09;基本语法 ps aux | grep xxx &#xff08…

Python 导入引用其他文件的函数(持续更新)

文章目录 构造初始化文件结构&#xff0c;以此为例。【1】导入同目录且同级下其他文件的函数&#xff08;c.py文件导入d.py文件的函数&#xff09;&#xff08;1&#xff09;只引入d.py文件&#xff08;2&#xff09;直接引入函数&#xff08;3&#xff09;引入全部函数 【2】导…

docker服务启动过程分析

How docker.service start&#xff1f; just by ref 我们先了解docker的各个核心组件的介绍 runc&#xff1a;runc实现了容器的底层功能&#xff0c;例如创建、运行等。runc通过调用内核接口为容器创建和管理cgroup、namespace等Linux内核功能&#xff0c;来实现容器的核心特…