История изменений
Исправление LightDiver, (текущая версия) :
Я не пока этот язык не изучал, но скинул твой код СИИ, он мне подробно рассказал что это, какой язык. Какие косяки текущей реализации, посоветовал не страдать дурью и использовать уже готовый strconv.Itoa:
package main
import (
"fmt"
"strconv"
)
func main() {
fmt.Println(strconv.Itoa(12345)) // "12345"
fmt.Println(strconv.Itoa(-6789)) // "-6789"
fmt.Println(strconv.Itoa(0)) // "0"
}
Они действительно классные, если уметь ими пользоваться.
Например, вот он улучшил твою реализацию ручную:
package main
import (
"fmt"
"strings"
)
func IntToString(i int) string {
digits := "0123456789"
if i == 0 {
return "0"
}
var result strings.Builder
negative := i < 0
if negative {
i = -i
}
for i > 0 {
result.WriteByte(digits[i%10])
i /= 10
}
if negative {
result.WriteByte('-')
}
// Реверсируем строку, так как цифры добавлялись в обратном порядке
runes := []rune(result.String())
for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
runes[i], runes[j] = runes[j], runes[i]
}
return string(runes)
}
func main() {
fmt.Println(IntToString(12345)) // "12345"
fmt.Println(IntToString(-6789)) // "-6789"
fmt.Println(IntToString(0)) // "0"
}
Исходная версия LightDiver, :
Я не пока этот язык не изучал, но скинул твой код СИИ, он мне подробно рассказал что это, какой язык. Какие косяки текущей реализации, посоветовал не страдать дурью и использовать уже готовый strconv.Itoa:
package main
import (
"fmt"
"strconv"
)
func main() {
fmt.Println(strconv.Itoa(12345)) // "12345"
fmt.Println(strconv.Itoa(-6789)) // "-6789"
fmt.Println(strconv.Itoa(0)) // "0"
}
Они действительно классные, если уметь ими пользоваться.