找回密码
 立即注册
首页 业界区 安全 类型转换

类型转换

宓爰爰 2025-10-1 18:01:31
  1. package _case
  2. import (
  3.         "fmt"
  4.         "strconv"
  5.         "time"
  6.         "unsafe"
  7. )
  8. // ConvertCase 类型转换
  9. func ConvertCase() {
  10.         // 同类型转换 数字和数字 字符串和字符和字节
  11.         // 不同类型转换 数字和字符串
  12.         // 接口类型转其他类型
  13.         // 数字类型转换
  14.         var num1 int = 100
  15.         fmt.Println("int 转 int64 :", int64(num1))
  16.         var num2 int64 = 100
  17.         fmt.Println("int64 转 int: ", int(num2))
  18.         // 字符串与数字类型转换
  19.         var num3 = 100
  20.         fmt.Println("int 转 string: ", strconv.Itoa(num3)+"abc")
  21.         // 字符串转数字类型
  22.         var str1 = "100"
  23.         str1_num, err := strconv.Atoi(str1)
  24.         if err != nil {
  25.                 fmt.Println(err.Error())
  26.         }
  27.         fmt.Println("string 转 int: ", str1_num)
  28.         // 数字转字符串
  29.         var num4 int64 = 1010
  30.         // 基于10 进制
  31.         fmt.Println("int64 转 int: ", strconv.FormatInt(num4, 10))
  32.         var str2 = "1010"
  33.         fmt.Println("字符串转数字")
  34.         fmt.Println(strconv.ParseInt(str2, 10, 64))
  35.         // 字符串转byte
  36.         var str3 = "你好世界"
  37.         bytes1 := []byte(str3)
  38.         fmt.Println("字符串转字节: ", bytes1)
  39.         fmt.Println("字节转字符串: ", string(bytes1))
  40.         // 字符串与 rune 转换 ;类似于字符类型.处理 unicode
  41.         var rune1 = []rune(str3)
  42.         fmt.Println("字符串转rune: ", rune1)
  43.         fmt.Println("rune转字符串: ", string(rune1))
  44.         fmt.Println("rune转字符串: ", string(rune1[2])) // 码点索引
  45.         fmt.Println("字符串转 int32: ", []int32(str3))
  46.         // 接口类型转换具体类型
  47.         var inf interface{} = 100
  48.         var infStrut interface{} = user{Name: "like"}
  49.         i, ok := inf.(int)
  50.         fmt.Println("接口类型转换具体类型: ", i, ok)
  51.         u, ok1 := infStrut.(user)
  52.         fmt.Println("接口类型转换具体类型: ", u, ok1)
  53.         // 时间类型转换
  54.         var t time.Time
  55.         t = time.Now()
  56.         timeStr := t.Format("2006-01-02 15:04:05Z07:00")
  57.         fmt.Println("时间类型转换: ", timeStr)
  58.         // 字符串转时间
  59.         t2, _ := time.Parse("2006-01-02 15:04:05Z07:00", timeStr)
  60.         fmt.Println("字符串转时间: ", t2)
  61.         fmt.Println("时间类型转换: ", t2.Unix())
  62.         // uintptr // 指针 类型
  63.         u1 := user{}
  64.         // unsafe.Pointer 不能用于计算
  65.         uPtr := unsafe.Pointer(&u1)
  66.         namePtr := unsafe.Pointer((uintptr(uPtr) + unsafe.Offsetof(u1.Name)))
  67.         *(*string)(namePtr) = "nick"
  68.         fmt.Println(u1)
  69. }
复制代码
  1. int 转 int64 : 100
  2. int64 转 int:  100
  3. int 转 string:  100abc
  4. string 转 int:  100
  5. int64 转 int:  1010
  6. 字符串转数字
  7. 1010 <nil>
  8. 字符串转字节:  [228 189 160 229 165 189 228 184 150 231 149 140]
  9. 字节转字符串:  你好世界
  10. 字符串转rune:  [20320 22909 19990 30028]
  11. rune转字符串:  你好世界
  12. rune转字符串:  世
  13. 字符串转 int32:  [20320 22909 19990 30028]
  14. 接口类型转换具体类型:  100 true
  15. 接口类型转换具体类型:  {like 0 { }} true
  16. 时间类型转换:  2025-09-17 21:39:07+08:00
  17. 字符串转时间:  2025-09-17 21:39:07 +0800 CST
  18. 时间类型转换:  1758116347
  19. {nick 0 { }}
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册