• GO语言学习笔记4-int与string类型转换


    int与string类型之间相互转换可以借助strconv包里自带的函数实现。

    string转换成int

    函数原型:

    // base指定进制(2到36),如果base为0,则会从字符串前置判断,
    // "0x"是16进制,"0"是8进制,否则是10进制;
    // bitSize指定结果必须能无溢出赋值的整数类型,
    // 0、8、16、32、64 分别代表 int、int8、int16、int32、int64。
    func ParseInt(s string, base int, bitSize int) (i int64, err error)
    
    // Atoi是ParseInt(s, 10, 0)的简写
    func Atoi(s string) (i int, err error)
    

    代码示例:

    package main
    
    import (
    	"fmt"
    	"strconv"
    )
    
    func main()  {
    	// 字符串数字 "256" 转换成 256
    	numStr1 := "256"
    	
    	numberInt1, error := strconv.ParseInt(numStr1, 10, 8)
    	if error == nil {
    		fmt.Printf("numberInt1的类型为:%T
    ", numberInt1)
    		fmt.Println("转换成功:numberInt1 = ", numberInt1)
    	} else {
    		fmt.Println("转换错误:", error)
    	}
    
    	numStr2 := "256"
    
    	numberInt2, error := strconv.Atoi(numStr2)
    	if error == nil {
    		fmt.Printf("numberInt2的类型为:%T
    ", numberInt2)
    		fmt.Println("转换成功:numberInt2 = ", numberInt2)
    	} else {
    		fmt.Println("转换错误:", error)
    	}
    	
    	numStr3 := "9876543210"
    
    	numberInt3, error := strconv.ParseInt(numStr3, 10, 64)
    	if error == nil {
    		fmt.Printf("numberInt3的类型为:%T
    ", numberInt3)
    		fmt.Println("转换成功:numberInt3 = ", numberInt3)
    	} else {
    		fmt.Println("转换错误:", error)
    	}
    }
    

    代码输出:

    转换错误: strconv.ParseInt: parsing "256": value out of range
    numberInt2的类型为:int
    转换成功:numberInt2 =  256
    numberInt2的类型为:int64
    转换成功:numberInt2 =  9876543210
    

    int转换成string

    函数原型:

    // 表示返回i的base进制的字符串。base 必须在2到36之间,
    // 结果中会使用小写字母'a'到'z'表示大于10的数字
    func FormatInt(i int64, base int) string
    
    // Itoa是FormatInt(i, 10) 的简写
    func Itoa(i int) string
    
    // Sprintf根据format参数生成格式化的字符串并返回该字符串
    func Sprintf(format string, a ...interface{}) string
    

    代码示例:

    package main
    
    import (
    	"fmt"
    	"strconv"
    )
    
    func main()  {
    	// 数字 65 转换成字符串 "65"
    	num1 := 65
    
    	string1 := strconv.Itoa(num1)
    	fmt.Printf("string1的类型为:%T
    ", string1)
    	fmt.Println(string1)
    
    	// 数字 256 转换成字符串 "256"
    	var num2 int64
    	num2 = 256
    
    	string2 := strconv.FormatInt(num2,10)
    	fmt.Printf("string2的类型为:%T
    ", string2)
    	fmt.Printf("%s
    ", string2)
    
    	// 数字 123456 转换成字符串 "123456"
    	num3 := 123456
    
    	string3 := fmt.Sprintf("%d", num3)
    	fmt.Printf("string3的类型为:%T
    ", string3)
    	fmt.Println(string3)
    	
    	// 如果不用这种的,可能转出来的不是你想象中的那样
    	num4 := 97
    
    	string4 := string(num4)
    	fmt.Printf("string4的类型为:%T
    ", string4)
    	// number_str = P, 对应到了相应的ascci码上了
    	fmt.Println(string4)
    }
    

    代码输出:

    string1的类型为:string
    65
    string2的类型为:string
    256
    string3的类型为:string
    123456
    string4的类型为:string
    a
    

    个人主页:

    www.codeapes.cn

  • 相关阅读:
    关于JAVA中的static方法、并发问题以及JAVA运行时内存模型
    【设计模式】抽象工厂模式
    spring mvc4.1.6 + spring4.1.6 + hibernate4.3.11 + mysql5.5.25 开发环境搭建及相关说明
    struts2.3.24 + spring4.1.6 + hibernate4.3.11+ mysql5.5.25开发环境搭建及相关说明
    git中Please enter a commit message to explain why this merge is necessary.
    扒一扒开源世界有哪些licenses?
    string.Format出现异常:输入字符串的格式不正确 Exception during StringFormat
    node-glob学习
    js中对URL进行转码与解码
    程序员如何修炼管理思维
  • 原文地址:https://www.cnblogs.com/codeapes666/p/12093805.html
Copyright © 2020-2023  润新知