猿问

println 在 go 中变成空字符串

所以我写了这个小的 go 程序,它向图灵机提供指令,并从中打印选定的单元格:


    package main


import "fmt"

import s "strings"


func main() {

  fmt.Println(processturing("> > > + + + . ."));

}


func processturing(arguments string) string{

    result := ""

    dial := 0

    cells := make([]int, 30000)

    commands := splitstr(arguments, " ")

    for i := 0;i<len(commands);i++ {

        switch commands[i] {

        case ">":

            dial += 1

        case "<":

            dial -= 1

        case "+":

            cells[dial] += 1

        case "-":

            cells[dial] -= 1

        case ".":

            result += string(cells[dial]) + " "

        }

    }

    return result

}


//splits strings be a delimeter

func splitstr(input, delim string) []string{

    return s.Split(input, delim)

}

问题是,当它运行时,控制台不显示任何内容。它只是什么都不显示。我如何使这个对fmt.println我的函数的结果字符串起作用?


catspeake
浏览 190回答 1
1回答

富国沪深

表达方式&nbsp;string(cells[dial])产生整数值的 UTF-8 表示cells[dial]。打印带引号的字符串输出以查看发生了什么:&nbsp;&nbsp;&nbsp;&nbsp;fmt.Printf("%q\n",&nbsp;processturing(">&nbsp;>&nbsp;>&nbsp;+&nbsp;+&nbsp;+&nbsp;.&nbsp;."))&nbsp;//&nbsp;prints&nbsp;"\x03&nbsp;\x03&nbsp;"我想你想要整数的十进制表示:&nbsp;strconv.Itoa(cells[dial])操场示例。
随时随地看视频慕课网APP

相关分类

Go
我要回答