convert 包
介绍
主要提供从字符串转到特定类型的 Convert 系列函数。
主要接口
interface Parsable
public interface Parsable<T> {
static func parse(value: String): T
static func tryParse(value: String): Option<T>
}
此接口主要提供统一的抽象,以支持字符串中的特定类型的解析
func parse
static func parse(value: String): T
功能:提供一个抽象函数,以支持从字符串中解析特定类型。
参数:
- value:待解析的字符串
返回值:转换后的值
func tryParse
static func tryParse(value: String): Option<T>
功能:提供一个抽象函数,以支持从字符串中解析特定类型。
参数:
- value:待解析的字符串
返回值:转换后值,转换失败返回 Option<T>.None
extend Bool <: Parsable
extend Bool <: Parsable<Bool>
此扩展主要用于实现将 Bool 类型字面量的字符串转换为 Bool 值的相关操作函数。
扩展的主要函数如下所示:
func parse
public static func parse(data: String): Bool
功能:将 Bool 类型字面量的字符串转换为 Bool 值。
参数:
- data:要转换的字符串
返回值:返回转换后 Bool 值
异常:
- IllegalArgumentException:当字符串为空或转换失败时,抛出异常
func tryParse
public static func tryParse(data: String): Option<Bool>
功能:将 Bool 类型字面量的字符串转换为 Option<Bool>
值。
参数:
- data:要转换的字符串
返回值:返回转换后 Option<Bool>
值,转换失败返回 Option<Bool>.None
extend Char <: Parsable
extend Char <: Parsable<Char>
此扩展主要用于实现将 Char 类型字面量的字符串转换为 Char 值的相关操作函数。
扩展的主要函数如下所示:
func parse
public static func parse(data: String): Char
功能:将 Char 类型字面量的字符串转换为 Char 值。
参数:
- data:要转换的字符串
返回值:返回转换后 Char 值
异常:
- IllegalArgumentException:当字符串为空,或转换失败时,或字符串中含有无效的 UTF-8 字符时,抛出异常
func tryParse
public static func tryParse(data: String): Option<Char>
功能:将 Char 类型字面量的字符串转换为 Option<Char>
值。
参数:
- data:要转换的字符串
返回值:返回转换后 Option<Char>
值,转换失败返回 Option<Char>.None
异常:
- IllegalArgumentException:当字符串中含有无效的 UTF-8 字符时,抛出异常
extend Int8 <: Parsable
extend Int8 <: Parsable<Int8>
此扩展主要用于实现将 Int8 类型字面量的字符串转换为 Int8 值的相关操作函数。
扩展的主要函数如下所示:
func parse
public static func parse(data: String): Int8
功能:将 Int8 类型字面量的字符串转换为 Int8 值。
参数:
- data:要转换的字符串
返回值:返回转换后 Int8 值
异常:
- IllegalArgumentException:当字符串为空,首位为“+”,转换失败,或转换后超出 Int8 范围,或字符串中含有无效的 UTF-8 字符时,抛出异常
func tryParse
public static func tryParse(data: String): Option<Int8>
功能:将 Int8 类型字面量的字符串转换为 Option<Int8>
值。
参数:
- data:要转换的字符串
返回值:返回转换后 Option<Int8>
值,转换失败返回 Option<Int8>.None
异常:
- IllegalArgumentException:当字符串中含有无效的 UTF-8 字符时,抛出异常
extend UInt8 <: Parsable
extend UInt8 <: Parsable<UInt8>
此扩展主要用于实现将 UInt8 类型字面量的字符串转换为 UInt8 值的相关操作函数。
扩展的主要函数如下所示:
func parse
public static func parse(data: String): UInt8
功能:将 UInt8 类型字面量的字符串转换为 UInt8 值。
参数:
- data:要转换的字符串
返回值:返回转换后 UInt8 值
异常:
- IllegalArgumentException:当字符串为空,首位为“+”或“-”,转换失败,或转换后超出 UInt8 范围,或字符串中含有无效的 UTF-8 字符时,抛出异常
func tryParse
public static func tryParse(data: String): Option<UInt8>
功能:将 UInt8 类型字面量的字符串转换为 Option<UInt8>
值。
参数:
- data:要转换的字符串
返回值:返回转换后 Option<UInt8>
值,转换失败返回 Option<UInt8>.None
异常:
- IllegalArgumentException:当字符串中含有无效的 UTF-8 字符时,抛出异常
extend Int16 <: Parsable
extend Int16 <: Parsable<Int16>
此扩展主要用于实现将 Int16 类型字面量的字符串转换为 Int16 值的相关操作函数。
扩展的主要函数如下所示:
func parse
public static func parse(data: String): Int16
功能:将 Int16 类型字面量的字符串转换为 Int16 值。
参数:
- data:要转换的字符串
返回值:返回转换后 Int16 值
异常:
- IllegalArgumentException:当字符串为空,首位为“+”,转换失败,或转换后超出 Int16 范围,或字符串中含有无效的 UTF-8 字符时,抛出异常
func tryParse
public static func tryParse(data: String): Option<Int16>
功能:将 Int16 类型字面量的字符串转换为 Option<Int16>
值。
参数:
- data:要转换的字符串
返回值:返回转换后 Option<Int16>
值,转换失败返回 Option<Int16>.None
异常:
- IllegalArgumentException:当字符串中含有无效的 UTF-8 字符时,抛出异常
extend UInt16 <: Parsable
extend UInt16 <: Parsable<UInt16>
此扩展主要用于实现将 UInt16 类型字面量的字符串转换为 UInt16 值的相关操作函数。
扩展的主要函数如下所示:
func parse
public static func parse(data: String): UInt16
功能:将 UInt16 类型字面量的字符串转换为 UInt16 值。
参数:
- data:要转换的字符串
返回值:返回转换后 UInt16 值
异常:
- IllegalArgumentException:当字符串为空,首位为“+”或“-”,转换失败,或转换后超出 UInt16 范围,或字符串中含有无效的 UTF-8 字符时,抛出异常
func tryParse
public static func tryParse(data: String): Option<UInt16>
功能:将 UInt16 类型字面量的字符串转换为 Option<UInt16>
值。
参数:
- data:要转换的字符串
返回值:返回转换后 Option<UInt16>
值,转换失败返回 Option<UInt16>.None
异常:
- IllegalArgumentException:当字符串中含有无效的 UTF-8 字符时,抛出异常
extend Int32 <: Parsable
extend Int32 <: Parsable<Int32>
此扩展主要用于实现将 Int32 类型字面量的字符串转换为 Int32 值的相关操作函数。
扩展的主要函数如下所示:
func parse
public static func parse(data: String): Int32
功能:将 Int32 类型字面量的字符串转换为 Int32 值。
参数:
- data:要转换的字符串
返回值:返回转换后 Int32 值
异常:
- IllegalArgumentException:当字符串为空,首位为“+”,转换失败,或转换后超出 Int32 范围,或字符串中含有无效的 UTF-8 字符时,抛出异常
func tryParse
public static func tryParse(data: String): Option<Int32>
功能:将 Int32 类型字面量的字符串转换为 Option<Int32>
值。
参数:
- data:要转换的字符串
返回值:返回转换后 Option<Int32>
值,转换失败返回 Option<Int32>.None
异常:
- IllegalArgumentException:当字符串中含有无效的 UTF-8 字符时,抛出异常
extend UInt32 <: Parsable
extend UInt32 <: Parsable<UInt32>
此扩展主要用于实现将 UInt32 类型字面量的字符串转换为 UInt32 值的相关操作函数。
扩展的主要函数如下所示:
func parse
public static func parse(data: String): UInt32
功能:将 UInt32 类型字面量的字符串转换为 UInt32 值。
参数:
- data:要转换的字符串
返回值:返回转换后 UInt32 值
异常:
- IllegalArgumentException:当字符串为空,首位为“+”或“-”,转换失败,或转换后超出 UInt32 范围,或字符串中含有无效的 UTF-8 字符时,抛出异常常
func tryParse
public static func tryParse(data: String): Option<UInt32>
功能:将 UInt32 类型字面量的字符串转换为 Option<UInt32>
值。
参数:
- data:要转换的字符串
返回值:返回转换后 Option<UInt32>
值,转换失败返回 Option<UInt32>.None
异常:
- IllegalArgumentException:当字符串中含有无效的 UTF-8 字符时,抛出异常
extend Int64 <: Parsable
extend Int64 <: Parsable<Int64>
此扩展主要用于实现将 Int64 类型字面量的字符串转换为 Int64 值的相关操作函数。
扩展的主要函数如下所示:
func parse
public static func parse(data: String): Int64
功能:将 Int64 类型字面量的字符串转换为 Int64 值。
参数:
- data:要转换的字符串
返回值:返回转换后 Int64 值
异常:
- IllegalArgumentException:当字符串为空,首位为“+”,转换失败,或转换后超出 Int64 范围,或字符串中含有无效的 UTF-8 字符时,抛出异常
func tryParse
public static func tryParse(data: String): Option<Int64>
功能:将 Int64 类型字面量的字符串转换为 Option<Int64>
值。
参数:
- data:要转换的字符串
返回值:返回转换后 Option<Int64>
值,转换失败返回 Option<Int64>.None
异常:
- IllegalArgumentException:当字符串中含有无效的 UTF-8 字符时,抛出异常
extend UInt64 <: Parsable
extend UInt64 <: Parsable<UInt64>
此扩展主要用于实现将 UInt64 类型字面量的字符串转换为 UInt64 值的相关操作函数。
扩展的主要函数如下所示:
func parse
public static func parse(data: String): UInt64
功能:将 UInt64 类型字面量的字符串转换为 UInt64 值。
参数:
- data:要转换的字符串
返回值:返回转换后 UInt64 值
异常:
- IllegalArgumentException:当字符串为空,首位为“+”或“-”,转换失败,或转换后超出 UInt64 范围,或字符串中含有无效的 UTF-8 字符时,抛出异常
func tryParse
public static func tryParse(data: String): Option<UInt64>
功能:将 UInt64 类型字面量的字符串转换为 Option<UInt64>
值。
参数:
- data:要转换的字符串
返回值:返回转换后 Option<UInt64>
值,转换失败返回 Option<UInt64>.None
异常:
- IllegalArgumentException:当字符串中含有无效的 UTF-8 字符时,抛出异常
extend Float16 <: Parsable
extend Float16 <: Parsable<Float16>
此扩展主要用于实现将 Float16 类型字面量的字符串转换为 Float16 值的相关操作函数。
扩展的主要函数如下所示:
func parse
public static func parse(data: String): Float16
功能:将 Float16 类型字面量的字符串转换为 Float16 值。
参数:
- data:要转换的字符串
返回值:返回转换后 Float16 值
异常:
- IllegalArgumentException:当字符串不符合浮点数语法时,抛出异常
func tryParse
public static func tryParse(data: String): Option<Float16>
功能:将 Float16 类型字面量的字符串转换为 Option<Float16>
值。
参数:
- data:要转换的字符串
返回值:返回转换后 Option<Float16>
值,转换失败返回 Option<Float16>.None
extend Float32 <: Parsable
extend Float32 <: Parsable<Float32>
此扩展主要用于实现将 Float32 类型字面量的字符串转换为 Float32 值的相关操作函数。
扩展的主要函数如下所示:
func parse
public static func parse(data: String): Float32
功能:将 Float32 类型字面量的字符串转换为 Float32 值。
参数:
- data:要转换的字符串
返回值:返回转换后 Float32 值
异常:
- IllegalArgumentException:当字符串不符合浮点数语法时,抛出异常
func tryParse
public static func tryParse(data: String): Option<Float32>
功能:将 Float32 类型字面量的字符串转换为 Option<Float32>
值。
参数:
- data:要转换的字符串
返回值:返回转换后 Option<Float32>
值,转换失败返回 Option<Float32>.None
extend Float64 <: Parsable
extend Float64 <: Parsable<Float64>
此扩展主要用于实现将 Float64 类型字面量的字符串转换为 Float64 值的相关操作函数。
扩展的主要函数如下所示:
func parse
public static func parse(data: String): Float64
功能:将 Float64 类型字面量的字符串转换为 Float64 值。
参数:
- data:要转换的字符串
返回值:返回转换后 Float64 值
异常:
- IllegalArgumentException:当字符串不符合浮点数语法时,抛出异常
func tryParse
public static func tryParse(data: String): Option<Float64>
功能:将 Float64 类型字面量的字符串转换为 Option<Float64>
值。
参数:
- data:要转换的字符串
返回值:返回转换后 Option<Float64>
值,转换失败返回 Option<Float64>.None
示例
covert 包使用示例
代码如下:
from std import convert.*
main():Int64 {
var strBool_parse : String = "true"
var strBool_tryParse : String = "false"
var strChar_parse : String = "'a'"
var strChar_tryParse : String = "'\\u{00e2}'"
var strInt8_parse : String = "-128"
var strInt8_tryParse : String = "127"
var strInt16_parse : String = "-32768"
var strInt16_tryParse : String = "32767"
var strInt32_parse : String = "-2147483648"
var strInt32_tryParse : String = "2147483647"
var strInt64_parse : String = "-9223372036854775808"
var strInt64_tryParse : String = "9223372036854775807"
var strFloat16_parse : String = "-65504.0"
var strFloat16_tryParse : String = "65504.0"
var strFloat32_parse : String = "-3.14159"
var strFloat32_tryParse : String = "3.14159"
var strFloat64_parse : String = "-3.1415926"
var strFloat64_tryParse : String = "3.1415926"
var strUInt8_parse : String = "255"
var strUInt8_tryParse : String = "255"
var strUInt16_parse : String = "65535"
var strUInt16_tryParse : String = "65535"
var strUInt32_parse : String = "4294967295"
var strUInt32_tryParse : String = "4294967295"
var strUInt64_parse : String = "18446744073709551615"
var strUInt64_tryParse : String = "18446744073709551615"
println("After the conversion of parse, \"true\" became ${Bool.parse(strBool_parse)}")
println("After the conversion of tryParse, \"false\" became ${Bool.tryParse(strBool_tryParse)}")
println("After the conversion of parse, \"'a'\" became ${Char.parse(strChar_parse)}")
println("After the conversion of tryParse, \"'\\u{00e2}'\" became ${Char.tryParse(strChar_tryParse)}")
println("After the conversion of parse, \"-128\" became ${Int8.parse(strInt8_parse)}")
println("After the conversion of tryParse, \"127\" became ${Int8.tryParse(strInt8_tryParse)}")
println("After the conversion of parse, \"-32768\" became ${Int16.parse(strInt16_parse)}")
println("After the conversion of tryParse, \"32767\" became ${Int16.tryParse(strInt16_tryParse)}")
println("After the conversion of parse, \"-2147483648\" became ${Int32.parse(strInt32_parse)}")
println("After the conversion of tryParse, \"2147483647\" became ${Int32.tryParse(strInt32_tryParse)}")
println("After the conversion of parse, \"-9223372036854775808\" became ${Int64.parse(strInt64_parse)}")
println("After the conversion of tryParse, \"9223372036854775807\" became ${Int64.tryParse(strInt64_tryParse)}")
println("After the conversion of parse, \"-65504.0\" became ${Float16.parse(strFloat16_parse)}")
println("After the conversion of tryParse, \"65504.0\" became ${Float16.tryParse(strFloat16_tryParse)}")
println("After the conversion of parse, \"-3.14159\" became ${Float32.parse(strFloat32_parse)}")
println("After the conversion of tryParse, \"3.14159\" became ${Float32.tryParse(strFloat32_tryParse)}")
println("After the conversion of parse, \"-3.1415926\" became ${Float64.parse(strFloat64_parse)}")
println("After the conversion of tryParse, \"3.1415926\" became ${Float64.tryParse(strFloat64_tryParse)}")
println("After the conversion of parse, \"255\" became ${UInt8.parse(strUInt8_parse)}")
println("After the conversion of tryParse, \"255\" became ${UInt8.tryParse(strUInt8_tryParse)}")
println("After the conversion of parse, \"65535\" became ${UInt16.parse(strUInt16_parse)}")
println("After the conversion of tryParse, \"65535\" became ${UInt16.tryParse(strUInt16_tryParse)}")
println("After the conversion of parse, \"4294967295\" became ${UInt32.parse(strUInt32_parse)}")
println("After the conversion of tryParse, \"4294967295\" became ${UInt32.tryParse(strUInt32_tryParse)}")
println("After the conversion of parse, \"18446744073709551615\" became ${UInt64.parse(strUInt64_parse)}")
println("After the conversion of tryParse, \"18446744073709551615\" became ${UInt64.tryParse(strUInt64_tryParse)}")
return 0
}
运行结果如下:
After the conversion of parse, "true" became true
After the conversion of tryParse, "false" became Some(false)
After the conversion of parse, "'a'" became a
After the conversion of tryParse, "'\u{00e2}'" became Some(â)
After the conversion of parse, "-128" became -128
After the conversion of tryParse, "127" became Some(127)
After the conversion of parse, "-32768" became -32768
After the conversion of tryParse, "32767" became Some(32767)
After the conversion of parse, "-2147483648" became -2147483648
After the conversion of tryParse, "2147483647" became Some(2147483647)
After the conversion of parse, "-9223372036854775808" became -9223372036854775808
After the conversion of tryParse, "9223372036854775807" became Some(9223372036854775807)
After the conversion of parse, "-65504.0" became -65504.000000
After the conversion of tryParse, "65504.0" became Some(65504.000000)
After the conversion of parse, "-3.14159" became -3.141590
After the conversion of tryParse, "3.14159" became Some(3.141590)
After the conversion of parse, "-3.1415926" became -3.141593
After the conversion of tryParse, "3.1415926" became Some(3.141593)
After the conversion of parse, "255" became 255
After the conversion of tryParse, "255" became Some(255)
After the conversion of parse, "65535" became 65535
After the conversion of tryParse, "65535" became Some(65535)
After the conversion of parse, "4294967295" became 4294967295
After the conversion of tryParse, "4294967295" became Some(4294967295)
After the conversion of parse, "18446744073709551615" became 18446744073709551615
After the conversion of tryParse, "18446744073709551615" became Some(18446744073709551615)