我想panic: runtime error: index out of range在下面的回圈中捕獲(內部函式不回傳)并X為每個panic: runtime error: index out of range結果連接:
func transform(inputString string, inputLength int) string {
var result = ""
for index := 0; index < inputLength; index {
if string(inputString[index]) == " " {
result = result " "
} else {
result = result string(inputString[index])
}
}
return result
}
例如forinputString = Mr Smith和is inputLength = 10。它有兩個 X 因為.resultMr SmithXX10 - 8 = 2
我知道我可以在回傳時捕捉到恐慌,transform()但我想在回圈內處理它而不回傳函式。
uj5u.com熱心網友回復:
inputString =
Mr Smith和 inputLength =10結果是Mr SmithXX. 它有兩個 X,因為 10 - 8 = 2。
package main
import "fmt"
func transform(s string, tLen int) string {
t := make([]byte, 0, 2*tLen)
for _, b := range []byte(s) {
if b == ' ' {
t = append(t, " "...)
} else {
t = append(t, b)
}
}
for x := tLen - len(s); x > 0; x-- {
t = append(t, 'X')
}
return string(t)
}
func main() {
s := "Mr Smith"
tLen := 10
fmt.Printf("%q %d\n", s, tLen)
t := transform(s, tLen)
fmt.Printf("%q\n", t)
}
https://go.dev/play/p/wg7MIO8yUzF
"Mr Smith" 10
"Mr SmithXX"
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/520353.html
標籤:for循环去例外恐慌
