Я пытаюсь изучить Go, но придерживался этого: http://ideone.com/hbCamr или http://ideone.com/OvRw7t
package main
import "fmt"
func main(){
  var i int
  var f float64
  var s string
  _, err := fmt.Scan(&i)
  if err == nil {
    fmt.Println("read 1 integer: ",i)
  } else {
    fmt.Println("Error: ",err)
  }
  _, err = fmt.Scan(&f)
  if err == nil {
    fmt.Println("read 1 float64: ",f)
  } else {
    fmt.Println("Error: ",err)
  }
  _, err = fmt.Scan(&s)
  if err == nil {
    fmt.Println("read 1 string: ",s)
  } else {
    fmt.Println("Error: ",err)
  }
  _, err = fmt.Scanln(&s)
  if err == nil {
    fmt.Println("read 1 line: ",s)
  } else {
    fmt.Println("Error: ",err)
  }
}
для этого ввода:
123
123.456
everybody loves ice cream
вывод был:
read 1 integer:  123
read 1 float64:  123.456
read 1 string:  everybody
Error:  Scan: expected newline
- это ожидаемое поведение? почему он не работает, как С++ getline? http://ideone.com/Wx8z5o
