GO语言笔记2-变量与基本数据类型

news2024/11/23 12:28:36

变量使用步骤

  1. 声明
  2. 赋值
  3. 使用
package main
import "fmt"
func main(){
	var age int //声明一个 int类型的变量叫age
	age = 18 //给变量用 = 赋值
	fmt.Println(age) //使用变量  输出变量的值
}

编译运行输出变量值

变量的四种使用方式

package main
import "fmt"
func main(){
	var num1 int = 18 //1.指定变量的类型并且赋值
    fmt.Println(num1) //使用变量  输出变量的值

	var num2 int //2定变量类型,不赋值,使用默认值
	fmt.Println(num2 ) //使用变量  输出变量的值

    var num3="tom" //3定变量不指定类型,根据后边的赋值自动确认类型
	fmt.Println(num3 ) //使用变量  输出变量的值

    num4:="男" //4.省略 var 使用 :=,不能写成 = 
	fmt.Println(num4 ) //使用变量  输出变量的值
}

编译运行

一次性声明多个变量 

package main
import "fmt"
func main(){ 
    //未赋值的
    fmt.Println("未赋值的####################")
	var n1,n2,n3 int
    fmt.Println(n1)
    fmt.Println(n2)
    fmt.Println(n3)
    //赋值的
    fmt.Println("赋值的####################")
    var n4,n5,n6 = 10,"小明",7.8
    fmt.Println(n4)
    fmt.Println(n5)
    fmt.Println(n6)
}

编译运行 

变量的类型

  1.  定义在函数内的变量叫做局部变量

  2. 定义在函数外部的变量叫做全局变量
package main
import "fmt"
//第一种声明方式 一个一个声明
var n1 = 100
var n2 = 9.7

//第二种声明方式,一次多个
var (
	n3 = 500
	n4 = "hello"
)
func main(){ 
    fmt.Println(n1)
    fmt.Println(n2)
    fmt.Println(n3)
    fmt.Println(n4)
}

变量的数据类型 

整数类型

【1】整数类型介绍:
简单的说,就是用于存放整数值的,比如10,-45,6712等等。

【2】有符号整数类型:
【3】无符号整数类型:

【4】其他整数类型:

 

Golang的整数类型,默认声明为int类型 

浮点型

 浮点型底层存储:符号位+指数位+尾数位,尾数位只存了一个大概,有可能会出现精度丢失所以通常建议使用 float64,默认也是float64

浮点数可以用十进制表示形式,也可以用科学计数法

//十进制
var num float32= 3.14

//科学计数法
var mum float64 = 314E-2
var num float64 = 314e-2

字符类型

定义字符使用byte

字母、数字、标点等字符底层是按照ASCII码进行存储,本质上是一个整数,可以至直接参与运算,输出字符的时候会将对应码值输出。

package main
import "fmt"

func main(){ 
    var c1 byte = 'a'
    var c2 byte = '6'
    var c3 byte = '('
    fmt.Println(c1 + 20) //117
    fmt.Println(c1) //97
    fmt.Println(c2) //54
    fmt.Println(c3) //40
}


  汉字字符,底层对应的是Unicode码值,使用byte会报错类型溢出,因为byte的范围是255,可以使用int

 

 如果想显示对应的字符,必须采用格式化输出

转义字符 

常用转义字符

\n 换行    \b 退格    \r 光标回到本行开头,后续就会替换原有的字符

\t 制表符   \" 输出"

布尔型

        布尔型(bool ) 只有两个值 true和false,只占用一个字节,一般用于逻辑运算和流程控制

字符串 

        一串固定长度的字符连接起来的字符序列

如果字符串中没有特殊字符,直接使用英文双引号包裹 

如果有特殊字符使用 英文反引号包裹或转义字符

字符串拼接 使用  +   或者 +=,当字符过长时吗+ 需要保留在上一行的最后

基本数据类型默认值

数据类型默认值数据类型默认值
整数类型0布尔false
浮点类型0字符串"" 空串

数据类型转换

基本数据类型转换

 go语言没有自动类型转换,必须显示转换,表达式 T(v) 将值v转换为T类型

表数范围大的类型转换表数范围小的类型会有精度丢失的问题

例如:

package main
import "fmt"

func main(){ 
    var i int8 = 3
    var f float32 = float32(i)
    fmt.Println(i) 
    fmt.Println(f) 
}

基本类型转string

方式1:fmt.springf("%参数",表达式)

方式2:需要使用strconv包的函数

%T 和 strconv. FormatXxxx  的使用详见go的api文档

package main
import "fmt"
import "strconv"
func main(){ 
    
    var i int = 19
    var str1 string = fmt.Sprintf("%d",i) 
    fmt.Println(str1)  //%d 10进制转字符串
    var str2 string = strconv.FormatInt(int64(i),10)
    fmt.Println(str2)  

    var f float64 = 19.0
    var str3 string = fmt.Sprintf("%f",f) 
    var str4 string = strconv.FormatFloat(f,'f',9,64) 
    fmt.Println(str3)  //%f 浮点型转字符串
    fmt.Println(str4)
}

string转基本类型

使用strconv包的函数,详见go语言的api

string转其他类型的时候必须是有效的数据,否者会转为对应的默认值

package main
import "fmt"
import "strconv"
func main(){ 
    
    var s1 string = "true"
    var b bool
    /*
        ParseBool 函数有两个返回值(value bool,err error)
        value是我们需要的数据,err是出现的错误
        err可以使用 _ 忽略
    */
    b , _= strconv.ParseBool(s1)
    fmt.Println("b的类型是:%T,b=%v ",b,b)

}

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

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

相关文章

[足式机器人]Part2 Dr. CAN学习笔记-动态系统建模与分析 Ch02-8 Bode Plot伯德图

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-动态系统建模与分析 Ch02-8 Bode Plot伯德图 Bode Plot 手绘技巧与应用

在线文本转语音工具的实现

文章目录 文章最下面有工具链接!前言edge-tts库1.首先使用pip安装这个库2.写一段示例代码3.多线程 pydub库1.介绍2.示例 将他们整合起来我把他们部署到了我的服务器上,可以在线使用点我使用工具 文章最下面有工具链接! 前言 最近有文字转语…

将Llama2上下文长度扩展100倍;效率更高的SeTformer;LLM准确度基本不变加速1.56×;FreeTalker

本文首发于公众号:机器感知 将Llama2上下文长度扩展100倍;效率更高的SeTformer;LLM准确度基本不变加速1.56;FreeTalker Latte: Latent Diffusion Transformer for Video Generation 本文使用Latent Diffusion Transformer(Latte…

程序媛的mac修炼手册-- 终端(terminal)常用命令

「终端(terminal)」相当于macOS的一个 App ,它的特殊之处是,它是管理其它App的App,操作主要通过命令行界面 (CLI) 。 相比于我们日常熟悉的用户界面(User Interface,UI)&#xff0c…

go image.DecodeConfig 和image.Decode 不能同时使用吗

问题场景:在同时使用go image.DecodeConfig 和image.Decode获取图片信息时,报错提示: 无法读取图像配置 image: unknown format package mainimport ("fmt""github.com/golang/freetype""image""image/d…

GPT在地学、GIS、气象、农业、生态、环境等领域应用教程

详情点击链接:GPT在地学、GIS、气象、农业、生态、环境等领域应用教程 一开启大模型 1 开启大模型 1)大模型的发展历程与最新功能 2)大模型的算法构架与底层逻辑 3)大模型的强大功能与应用场景 4)国内外经典大模型(ChatGPT、LLaMA、Gemini、DALLE、…

【echarts】雷达图参数详细介绍

1. 详细示例 var option {tooltip: {trigger: item},radar: {startAngle: 90,//第一个指示器轴的角度,默认90indicator: [// 指示器{ name: Category A, max: 220 },// name:指示器名称{ name: Category B, max: 200 },// max:指示器的最大值,可选&…

【JAVA】throw 和 throws 的区别?

🍎个人博客:个人主页 🏆个人专栏: JAVA ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 throw: throws: 区别: 作用: 使用位置: 个数: 应…

第1章 初识JavaScript

学习目标 了解JavaScript基本概念,能够说出JavaScript的作用、由来、组成和特点 熟悉常见浏览器的特点,能够说出浏览器的组成以及作用 掌握下载和安装Visual Studio Code编辑器,能够独立完成编辑器的下载和安装 掌握JavaScript代码引入方式…

【forwardRef与useImperativeHandle】

1、 2、 3、 4、代码 1、index.tsx代码 import React, {useRef, useEffect} from react import MyInput from "./InputItem";export default function Index() {const ref useRef<any>(null);useEffect(() > {ref.current?.focus();}, [])return (<&…

安达发|APS计划与排程软件之超级BOM功能

在制造业中&#xff0c;物料清单&#xff08;BOM&#xff09;是一个重要的概念&#xff0c;它描述了产品的组成结构和各个部件之间的关系。随着制造业的发展&#xff0c;对于生产计划和排程的要求也越来越高&#xff0c;因此APS&#xff08;高级计划与排程&#xff09;软件应运…

2023年,To B资本航船走向哪了?

国内To B领域在去掉泡沫、结束资本狂欢之后&#xff0c;投资决策愈加理性。但与此同时&#xff0c;下滑的步伐正在放慢&#xff0c;交易数量和金额的降低逐渐放缓&#xff0c;市场逐渐走向稳定。 作者|斗斗 编辑|皮爷 出品|产业家 2023年&#xff0c;在一众业内人士的眼中&…

openai API key 提示你的卡被拒绝怎么办?

openai API key 对于IP的要求非常的严格&#xff0c;以前你开腾讯云、阿里云的服务器都可以绑定、现在就不行了&#xff0c;一定要纯净的IP才可以绑定 一、排除法 1、首先确保自己的账号是没有被封的&#xff0c;可以正常使用的 2、确保银行卡是可以支持openai的银行卡 3、…

IDEA的lombok失效导致工程代码编译build失败的问题处理

今天也是奇了怪了&#xff0c;打包工程&#xff0c;编译始终失败&#xff0c;明明代码符号存在的 解决办法就是&#xff1a;-Djps.track.ap.dependenciesfalse

嵌入式(八)电源低功耗管理 | 五种运行模式 模式转换 睡眠定时器唤醒

文章目录 1 低功耗基本介绍1.1 五种运行模式 2 低功耗控制相关寄存器3 睡眠唤醒实现方式3.1 系统睡眠定时器唤醒 1 低功耗基本介绍 对于嵌入式系统而言&#xff0c;一个非常重要的内容就是低功耗&#xff0c;尽可能减少电量损耗&#xff0c;然后获得更多的续航时间 当然功耗越…

UG装配-布置

UG装配中&#xff0c;当一个产品在不同情况下具有不同的形态的时候&#xff0c;为了快速进行展示&#xff0c;我们可以使用布置命令. 我们可以直接在工具栏布置中&#xff0c;或者在装配导航器中右键单击装配体&#xff0c;选择布置-编辑&#xff0c;添加不同不同的布置页面 使…

模拟算法(模拟算法 == 依葫芦画瓢)万字

模拟算法 基本思想引入算法题替换所有的问号提莫攻击Z字形变换外观数列数青蛙 基本思想 模拟算法 依葫芦画瓢解题思维要么通俗易懂&#xff0c;要么就是找规律&#xff0c;主要难度在于将思路转换为代码。 特点&#xff1a;相对于其他算法思维&#xff0c;思路比较简单&#x…

Docker简介、基本概念和安装

Docker简介、基本概念和安装 1.docker简介 1.1 什么是docker Docker 最初是 dotCloud 公司创始人 Solomon Hykes (opens new window)在法国期间发起的一个公司内部项目&#xff0c;它是基于 dotCloud 公司多年云服务技术的一次革新&#xff0c;并于 2013 年 3 月以 Apache 2…

Power BI - 5分钟学习修改数据类型

每天5分钟&#xff0c;今天介绍Power BI修改数据类型 Power BI加载数据时&#xff0c;会尝试将源列的数据类型转换为更高效的存储、计算和数据可视化的数据类型。 例如&#xff0c;如果从Excel导入的值的列没有小数值&#xff0c;Power BI Desktop会将整个数据列转换为整数数据…

HCIA-Datacom题库(自己整理分类的)_17_简单的命令判断【11道题】

1.华为AR路由器的命令行界面下&#xff0c;save命令的作用是保存当前的系统时间。 解析&#xff1a;Save保存配置 2.VRP界面下&#xff0c;使用命令delete vrpcfg.zp删除文件&#xff0c;必须在回收站中清空&#xff0c;才能彻底删除文件。√ 解析&#xff1a;delete删除到回…