ex06

command
v0.0.0-...-c93e153 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 24, 2018 License: MIT Imports: 3 Imported by: 0

README

Q3.6 : ストリーム総集編

これまで紹介してきた構造体や関数を組み合わせて、ちょっとしたパズルを組み立ててみましょう。
次の3つの文字列を3つの入力ストリーム(io.Reader)とし、下記に示すmain()関数のコメント部にコードを追加して、最後のio.Copyで「ASCII」の文字列が出力されるようにしてみてください。

  • COMPUTER
  • SYSTEM
  • PROGRAMNG
package main

import (
    "strings"
    "io"
    "os"
)

var (
    computer   = strings.NewReader("COMPUTER")
    system     = strings.NewReader("SYSTEM")
    programing = strings.NewReader("PROGRAMING")
)

func main() {
    var stream io.Reader

    // ここにioパッケージを使ったコードを書く
    io.Copy(os.Stdout, stream)
}

ただし次の制約を守ってください。

  • 使っていいのはioパッケージの内容+基本文法のみです。io.Pipe()を使う場合は、ブロッキングを防ぐために、次章で説明するgoroutineを使う必要があります。
  • 文字列リテラルを使用してはいけません。
  • コメント部以外を変更してはいけません。当然、importするパッケージを増やしてはいけません。

ヒントとして、図3.7のモデル図を使って、ストリームの組み合わせを考えてみるといいでしょう。

Result

$ gor print_ascii.go
ASCII%

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL