2.golang的变量、常量、数据类型、循环和条件判断

news/2024/11/22 22:51:36/

一、变量

变量(Variable)的功能是存储数据。Go语言中的每一个变量都有自己的类型,并且变量必须经过声明才能开始使用。
Go语言的变量声明格式为:

var 变量名 变量类型
例如:
var name string
var age int
var isOk bool

短变量声明
在函数内部,可以使用更简略的 := 方式声明并初始化变量。

func main() {n := 10m := 200 // 此处声明局部变量mfmt.Println(m, n)
}

二、常量

相对于变量,常量是恒定不变的值,多用于定义程序运行期间不会改变的那些值。常量的声明和变量声明非常类似,只是把var换成了const,常量在定义的时候必须赋值。

const 常量名 常量类型 = 常量值
例如:
const name string = "张三"
const age int = 18
const isOk bool = false

在这里插入图片描述

三、数据类型

Go 中可用的基本类型:

  • bool(布尔)
  • int8、int16、int32、int64、int(数值:整型可有符号)
    uint8、uint16、uint32、uint64、uint(数值:整型无符号)
    float32, float64(数值:浮点型)
    complex64, complex128
    byte
    rune
  • string(字符串)

数据类型的转换
Go 对显式类型非常严格。没有自动类型提升或转换。需要在运算前进行数据类型统一。

  • 数值间的类型转换
var age uint = 18
var height float64 = 180.5
var num1 uint = age + uint(height)
var num2 int = int(age) + int(height)
var num3 float64 = float64(age) + height
  • 字符串数值间的转换
var money int = -10
var age2 string = "10"
var intToStr string = strconv.Itoa(money)
var strToInt, _ = strconv.Atoi(age2)

四、循环

for是 Go 中唯一可用的循环。Go 没有其他语言中存在的 while 或 do while 循环。

for initialisation; condition; post {  
}
例如
for i := 0; i < 10; i++ {fmt.Println(i)
}

结束循环

  • break 会结束所有循环。
  • continue 会跳过当前循环直接进入下一次循环。

五、条件判断

if else 语句
if是一个具有布尔条件的语句,如果该条件为真,则执行第一个代码块。如果条件求值为false,则执行另一个else块。

if 条件 {# 业务代码
} else {# 业务代码
}
例如
for i := 0; i <= 9; i++ {if i < 3 {fmt.Println("小树枝", i)} else if i >= 3 && i < 6 {fmt.Println("中树枝", i)} else {fmt.Println("大树枝", i)}
}

switch 语句
switch 是一个条件语句,它计算表达式并将其与可能匹配的列表进行比较并执行相应的代码块。它可以被认为是替换复杂if else从句的惯用方式。

switch 变量 {
case 值:# 业务代码
case 值:# 业务代码
default:# 业务代码
}
例如
for i := 0; i <= 9; i++ {switch i {case 1, 2:fmt.Println("小树枝", i)case 3, 4, 5:fmt.Println("中树枝", i)case 6, 7, 8:fmt.Println("大树枝", i)default:fmt.Println("其他树枝", i)}
}

http://www.ppmy.cn/news/82692.html

相关文章

位运算符及正码、补码、反码

一、正码、补码、反码 二进制的最高位是符号位&#xff1a;0表示正数&#xff0c;1表示负数&#xff1b; 正数的原码、反码、补码都一样&#xff08;三码合一&#xff09; 负数的反码它的原码符号位不变&#xff0c;其它位取反&#xff08;0->1 , 1->0&#xff09; 负数…

Cesium源码分享--量算

Cesium量算插件 在线体验 gitee&#xff1a;https://gitee.com/caozl1132/CesiumExp-measure github&#xff1a;https://github.com/gitgitczl/CesiumExp-measure ps&#xff1a;如果可以的话&#xff0c;希望大家能给我个star&#xff0c;好让我有更新下去的动力&#xff1…

旅游小程序需要开发哪些功能

着移动互联网的普及&#xff0c;游客习惯通过手机预订旅游产品&#xff0c;对于旅游企业来说&#xff0c;建设移动端的获客渠道、销售平台已经是标配&#xff0c;旅游小程序就是常用方式之一&#xff0c;涉旅企业纷纷开发小程序。 旅游小程序应该开发哪些功能呢&#xff1f; 1、…

javaweb实验:Servlet应用开发

目录 前言实验目的实验内容实验原理或流程图实验过程一个简单的servletServlet表单结果展示 使用servlet处理表单请求servlet结果展示 在Servlet中获取应用程序配置参数servlet 使用Servlet处理用户登录请求Servlet登录表单登陆成功页面登录失败页面结果展示![在这里插入图片描…

mjpg-streamer框架分析

mjpg-streamer框架分析 文章目录 mjpg-streamer框架分析框架maininput_initinput_runoutput_init 框架 main 这个函数是一个C程序的主函数&#xff0c;接受命令行参数并执行相应的操作。下面是这个函数的要点&#xff1a; 定义了一些变量&#xff0c;包括输入插件数组input、输…

面试题集合1

zstarling DELETE和TRUNCATE TABLE的区别和联系过拟合如何解决介绍数据标准化方法&#xff0c;并介绍每个方法的特点&#xff0c;为什么要都标准化&#xff0c;优点是什么&#xff0c;以及什么样的场是下用。流量运营过程中&#xff0c;常用的分析方法有哪些&#xff0c;对应的…

【谷粒商城笔记】1.基于docker的mysql、redis环境配置

0.系统 宝塔 v7.5.1 Centos v8.2 1. 安装Docker 直接yum install docker会提示找不到 > docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine Loaded plugins: fastestmirror No Match for argument: …

Android 12.0下拉状态栏通知栏的通知设置默认展开

1.概述 在12.0的产品定制化中,对于SystemUI的定制也是常用的功能,而在下拉状态栏中的通知栏部分也是极其重要的部分,每条通知实时更新在通知栏部分,由于通知栏高度的限制,每条通知是默认收缩的,功能开发需要要求通知默认展开,所以就要从通知的加载流程分析 如图: 2.…