4.1 golang基础语法

简介: 4.1 golang基础语法

前言


本篇文章主要是记录golang 中常用的中类型转换的方法


一、Golang 类型常见的转换


类型转换可以分为两类: 同一类型转换和不同类型的数据转换

同一类型数据转换: 数字和数字 字符串和字符和字节

不同类型数据转换: 数字和字符串

接口类型转化其它类型


二、具体实例分析


1.同类型转换

代码如下( 数字类型转换):

// 数字类型转换
var num1 int = 100
fmt.Println(int64(num1))
var num2 int64 = 100
fmt.Println(int(num2))


2.不同类型转换

2.1 数字和字符串转

数字和字符串转换需要借助strconv 方法

代码如下(字符串 与数字转换):

// 字符串 与数字转换
var num3 int = 100
fmt.Println(strconv.Itoa(num3) + "abc")
var str1 string = "100"
fmt.Println(strconv.Atoi(str1))
var num4 int64 = 1010
fmt.Println(strconv.FormatInt(num4, 10))
var str2 = "1010"
fmt.Println(strconv.ParseInt(str2, 10, 64))


2.2 字符串与[]byte转换

代码如下( 字符串与[]byte转):

// 字符串与[]byte 转换  可以当作是同一类型转换
var str3 = "今天天气很好"
byte1 := []byte(str3)
fmt.Println(byte1)
fmt.Println(string(byte1))


2.3 字符串与rune转化

代码如下( 字符串与rune转化):

// 字符串与rune转化
// rune 为int32类型
// 将字符串转换为rune切牌你,实际上rune切片中存储了字符串Unicode码点
var rune1 = []rune(str3)
fmt.Println(rune1)
fmt.Println(string(rune1))
fmt.Println(string(rune1[3]))
fmt.Println([]int32(str3))


2.4 接口类型转具体类型

代码如下( 接口类型转具体类型):

// 接口类型转具体类型
// 通过断言处理
var inf interface{} = 100
var infStruct interface{} = user{Name: "fischer"}
i, ok := inf.(int)
fmt.Println(i, ok)
u, ok := infStruct.(user)
fmt.Println(u, ok)


2.5 时间类型转字符串

代码如下( 时间类型转字符串):

// 时间类型转字符串
var t time.Time
t = time.Now()
// 注意后面的格式是固定这么写
timeStr := t.Format("2006-01-02 15:04:05Z07:00")
fmt.Println(timeStr)
// 字符串转时间
t2, _ := time.Parse("2006-01-02 15:04:05Z07:00", timeStr)
fmt.Println(t2)


2.6 uintptr

代码如下( uintptr):

// uintptr
u1 := user{}
// unsafe.Pointer()是通用指针类型, 不能用于计算
uPtr := unsafe.Pointer(&u1)
namePtr := unsafe.Pointer(uintptr(uPtr) + unsafe.Offsetof(u1.Name))
*(*string)(namePtr) = "fischer"
fmt.Println(u1)

总结


提示:这里对文章进行总结:


参考


文章参考与<零声教育>的C/C++linux服务期高级架构系统教程学习:

目录
相关文章
|
8天前
|
Go
Golang深入浅出之-Go语言基础语法:变量声明与赋值
【4月更文挑战第20天】本文介绍了Go语言中变量声明与赋值的基础知识,包括使用`var`关键字和简短声明`:=`的方式,以及多变量声明与赋值。强调了变量作用域、遮蔽、初始化与零值的重要性,并提醒读者注意类型推断时的一致性。了解这些概念有助于避免常见错误,提高编程技能和面试表现。
22 0
|
4月前
|
JSON 安全 Java
golang面试:golang基础语法(一)
golang面试:golang基础语法(一)
41 0
|
6月前
|
存储 人工智能 Java
深入了解Golang:基本语法与核心特性解析
深入了解Golang:基本语法与核心特性解析
|
7月前
|
安全 IDE Linux
【Golang】一文学完 Golang 基本语法
【Golang】一文学完 Golang 基本语法
30 0
|
8月前
|
Go
Golang语法入门指南
Go是一种现代、高效、并发的编程语言,被设计用于构建可靠且高性能的软件。它具有简单的语法和强大的标准库,适用于各种类型的应用程序开发。本博客将引导您快速入门Golang的基本语法,并提供一些实用的技巧和最佳实践。
61 0
|
编译器 Go
Golang泛型语法
在定义函数(结构等)时候,可能会有多种类型传入。只有在真正使用才知道是什么类型,此时就可以用一个更加宽泛的类型(必须存在一定约束,只能在那些类型的范围内使用)暂时占位。这个类型就叫泛型
614 0
|
存储 关系型数据库 MySQL
Golang基本语法-掘金课程笔记
Golang基本语法-掘金课程笔记
91 0
Golang基本语法-掘金课程笔记
|
Java Linux Go
知识分享之Golang——templates常用语法
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。
121 0
知识分享之Golang——templates常用语法
|
JSON 监控 Go
【Golang 快速入门】高级语法:反射 + 并发
Golang 进阶 反射 变量内置 Pair 结构 reflect 结构体标签 并发知识 基础知识 早期调度器的处理 GMP 模型 调度器的设计策略 并发编程 goroutine channel 无缓冲的 channel 有缓冲的 channel 关闭 channel channel 与 range channel 与 select
233 0
【Golang 快速入门】高级语法:反射 + 并发
|
存储 Kubernetes 算法
【Golang 快速入门】基础语法 + 面向对象
Golang 语言特性 Golang 的优势 Golang 的应用场景 Golang 的不足 基础语法 main 变量 常量与 iota string 字符串遍历 strings 包 bytes 包 strconv 包 unicode 包 循环语句 range 函数 多返回值 init 函数 闭包 import 导包 匿名函数 指针 defer 切片 slice 数组 slice slice 操作 ... map map 的声明 map 的使用 error 面向对象编程 type 方法 struct 封装
160 0

相关实验场景

更多