Skip to content

内置类型转换函数 ​

标准库内置类型转换函数模块: strconv

go
package main

import (
	"fmt"
	"strconv"
)

func main() {
	num, err := strconv.ParseInt("123", 10, 64)
	if err != nil {
		fmt.Println("[Error]failed to parse number", err)
	}

	fmt.Println("num = ", num)
}

[问题]

虽然可以转换类型,但是多数API出错时都会返回一个 error,

需要手动处理 error 而且并没有直接转换时间的 time.Duration 的接口

使用 cast ​

cast 可以更方便的转换类型

go
package main

import (
	"fmt"

	"github.com/spf13/cast"
)

func main() {
  // 1.代码更简洁直观
	num := cast.ToInt("123")
	fmt.Println("num = ", num) // Output: num = 123

	// 2.即使无法解析也会使用默认值
	num2 := cast.ToInt("123a")
	fmt.Println("num2 = ", num2) // Output: num = 123
}

Released under the MIT License.