bugfix> go > 投稿

現在、シリアルポートを使用してArduinoからセンサー値を読み取るGoコードを書いています。現在、出力に「\ r」と「\ n」が表示されています。 Pythonでは、次のことができます。

line = line.decode('utf-8')

文字を取り除くために。 Golangを使用してどのようにしますか?私はこの言語にかなり慣れていないので、どんな助けでも感謝します!現在、出力のスニペットは次のようになっています。

"arduinoLED\"}\r\n{\"temperature\"

また、誰かがGoで行を読む方法を教えてもらえたら(Pythonの line.readline() に似ています) )それは素晴らしいことです。

どうもありがとう!

回答 1 件
  • デフォルトの bufio.Scanner を使用して行ごとにストリームを読み取る場合  (これは通常の方法です)その後、両方とも通常の( \n )およびCRLF( \r\n )改行は破棄されます:

    doc := "Hello\nWorld!\nGoodbye,\r\nnewlines!\r\n"
    scanner := bufio.NewScanner(bytes.NewReader([]byte(doc)))
    for scanner.Scan() {
        fmt.Printf("%q\n", scanner.Text()) // Note our own newline here
    }
    if err := scanner.Err(); err != nil {
        panic(err) // TODO: handle error properly
    }
    // Prints:
    // "Hello,"
    // "World!"
    // "Goodbye,"
    // "newlines!"
    
    

    もちろん、上記の例のバイトリーダーの代わりに、おそらく既存のリーダーがありますが、使用方法は同じです。

あなたの答え