在Go语言中解析数字

GolangGolangBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

本实验的目的是演示如何在 Go 语言中从字符串解析数字。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL go(("`Golang`")) -.-> go/AdvancedTopicsGroup(["`Advanced Topics`"]) go/AdvancedTopicsGroup -.-> go/number_parsing("`Number Parsing`") subgraph Lab Skills go/number_parsing -.-> lab-15492{{"`在Go语言中解析数字`"}} end

数字解析

在许多程序中,从字符串解析数字是一项常见的任务。本实验要求你使用内置的 strconv 包从字符串中解析不同类型的数字。

  • 使用 strconv 包从字符串中解析数字。
  • 使用 ParseFloat 解析浮点数。
  • 使用 ParseInt 解析整数。
  • 使用 ParseInt 解析十六进制格式的数字。
  • 使用 ParseUint 解析无符号整数。
  • 使用 Atoi 解析十进制整数。
  • 处理解析函数返回的错误。
$ go run number-parsing.go
1.234
123
456
789
135
strconv.ParseInt: 解析 "wat": 语法无效

## 接下来我们将看看另一个常见的解析任务:URL。

以下是完整代码:

// 从字符串解析数字是许多程序中一项基本但常见的任务
// 以下是在Go语言中实现的方法。

package main

// 内置的 `strconv` 包提供数字
// 解析功能。
import (
	"fmt"
	"strconv"
)

func main() {

	// 使用 `ParseFloat` 时,这个 `64` 表示要解析的
	// 精度位数。
	f, _ := strconv.ParseFloat("1.234", 64)
	fmt.Println(f)

	// 对于 `ParseInt`,`0` 表示从字符串推断基数。`64`
	// 要求结果能容纳在64位中。
	i, _ := strconv.ParseInt("123", 0, 64)
	fmt.Println(i)

	// `ParseInt` 会识别十六进制格式的数字。
	d, _ := strconv.ParseInt("0x1c8", 0, 64)
	fmt.Println(d)

	// 也有 `ParseUint`。
	u, _ := strconv.ParseUint("789", 0, 64)
	fmt.Println(u)

	// `Atoi` 是用于基本十进制 `int` 解析的便捷函数。
	k, _ := strconv.Atoi("135")
	fmt.Println(k)

	// 解析函数在输入错误时返回错误。
	_, e := strconv.Atoi("wat")
	fmt.Println(e)
}

总结

本实验演示了如何使用 strconv 包在Go语言中从字符串解析不同类型的数字。通过完成本实验,你应该对如何在Go程序中处理数字解析有更好的理解。

您可能感兴趣的其他 Golang 教程