golang 基础 —— 字符串 与 int int64 互转

Posted 猎人在吃肉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang 基础 —— 字符串 与 int int64 互转相关的知识,希望对你有一定的参考价值。

文章目录

1、代码

package main

import (
	"fmt"
	"reflect"
	"strconv"
)

func main() 

	var testStr string = "123456"

	// 字符串 转 int
	intNum, _ := strconv.Atoi(testStr)
	fmt.Println("intNum =", intNum, ", intNum 类型是", reflect.TypeOf(intNum))

	// 字符串 转 int64
	int64Num, _ := strconv.ParseInt(testStr, 10, 64)
	fmt.Println("int64Num=", int64Num, ", int64Num 类型是", reflect.TypeOf(int64Num))

	// ===================================================

	// int 转 字符串
	var intNum2 int = 123456
	var str1 string = strconv.Itoa(intNum2)
	fmt.Println("str1 =", str1, ", str1 类型是", reflect.TypeOf(str1))

	// int64 转 字符串
	var int64Num2 int64 = 123456
	var str2 string = strconv.FormatInt(int64Num2, 10)
	fmt.Println("str2 =", str2, ", str2 类型是", reflect.TypeOf(str2))

	fmt.Println("----------------- 类型转换 ---------------------")

	var num3 int = 30
	var num4 int64
	num4 = int64(num3)
	fmt.Printf("num3 的类型是 %T ,num3= %v \\n", num3, num3)
	fmt.Printf("num4 的类型是 %T ,num4= %v \\n", num4, num4)

	var num5 int64 = 20
	var num6 int
	num6 = int(num5)
	fmt.Printf("num5 的类型是 %T ,num5= %v \\n", num5, num5)
	fmt.Printf("num6 的类型是 %T ,num6= %v \\n", num6, num6)


运行结果:

intNum = 123456 , intNum 类型是 int
int64Num= 123456 , int64Num 类型是 int64
str1 = 123456 , str1 类型是 string      
str2 = 123456 , str2 类型是 string
----------------- 类型转换 ---------------------        
num3 的类型是 int ,num3= 30                             
num4 的类型是 int64 ,num4= 30                           
num5 的类型是 int64 ,num5= 20                           
num6 的类型是 int ,num6= 20  

2、总结

2.1、字符串 与 int 互转

// 字符串 转 int
intNum, _ := strconv.Atoi(testStr)

// int 转 字符串	
var str1 string = strconv.Itoa(intNum2)	

2.2、字符串 与 int64 互转

// 字符串 转 int64
// 参数1:数字类型的字符串
// 参数2:数字字符串的进制, 比如 2进制、8进制、10进制、16进制
// 参数3:bitSize,意思是string转int64时的数值范围的限制,如int8 int16 int32 int64 不同数字类型取值范围是不一样的
int64Num, _ := strconv.ParseInt(testStr, 10, 64)


// int64 转 字符串
// 参数1:int64类型的数字,如果是int、int8 int16 int32,则要使用int64(数字)转换
// 参数2:表示int64数字要转换什么进制的字符串 , 比如 2进制、8进制、10进制、16进制。取值必须在2到36之间。
var str2 string = strconv.FormatInt(int64Num2, 10) 

示例:
字符串 e 属于16进制,是10进制中的14 。

var testStr3 string = "e"
int64Num, _ := strconv.ParseInt(testStr3, 16, 8) 
fmt.Println("int64Num=", int64Num, ", int64Num 类型是", reflect.TypeOf(int64Num))

运行结果:

int64Num= 14 , int64Num 类型是 int64  

2.3、int 与 int64 互转最简单

var intNum int = int(int64位数字)

var int64Num int64 = int64(int数字)

以上是关于golang 基础 —— 字符串 与 int int64 互转的主要内容,如果未能解决你的问题,请参考以下文章

golang 字符串与int类型转换

Python 程序员的 Golang 学习指南(III): 入门篇

理解golang反射(reflection in Go)

golang基础---Slice切片

golang基础之三-字符串,时间,流程控制,函数

golang学习笔记1——基础知识