代码:
- package main
-  
- import (
- 	"fmt"
- )
-  
- func main()  {
- 	var str1 = "2"
- 	var str2 = "11"
- 	fmt.Println(str1 < str2)
- 	str1 = "02"
- 	str2 = "11"
- 	fmt.Println(str1 < str2)
- }
结果:
- false
- true
总结:
从左到右逐个字符根据ASCII码值的大小来比较。如果要用到字符串比较大小,必须保证位数相同,进制相同。
运行效率比较:
- package main
-  
- import (
- 	"fmt"
- 	"strconv"
- 	"time"
- )
-  
- func main()  {
- 	timeNow := time.Now().UnixNano()
- 	fmt.Println(timeNow)
- 	var str1 = "20191220"
- 	var str2 = "20191202"
- 	var result bool
- 	for i := 0; i < 100000; i++ {
- 		result = str1 < str2
- 	}
- 	timeEnd := time.Now().UnixNano()
- 	fmt.Println(timeEnd)
- 	fmt.Println(result, timeEnd-timeNow)
-  
-  
- 	timeNow = time.Now().UnixNano()
- 	fmt.Println(timeNow)
- 	str1 = "20191220"
- 	str2 = "20191202"
- 	for i := 0; i < 100000; i++ {
- 		num1, _ := strconv.Atoi(str1)
- 		num2, _ := strconv.Atoi(str2)
- 		result = num1 < num2
- 	}
- 	timeEnd = time.Now().UnixNano()
- 	fmt.Println(timeEnd)
- 	fmt.Println(result, timeEnd-timeNow)
- }


