2

私はGoでプログラミングしていて、テキストファイルを読み込んで、その上にある複数のものを置き換えて、コードを1つの言語からGoに変換して実行できるようにします。私が抱えている問題は、Printlnステートメントのようなものを置き換えようとすると、変換しているコードに実際に固有でないと、ステートメントの最後に括弧を付けることができないということです。このようなコードを使用する方法はありますか?

src = bytes.Replace(src, []byte("Insert"), []byte("Println(" * ")"), -1)

コード行の最後に括弧を付けるだけの機能がありますか?

4

1 に答える 1

2
package main

import (
        "fmt"
        "regexp"
)

func main() {
        src := []byte(`
Write(1, 3, "foo", 3*qux(42));
WriteLn("Enter bar: ");
`)
        re := regexp.MustCompile(`Write\((.*)\);`)
        re2 := regexp.MustCompile(`WriteLn\((.*)\);`)
        src = re.ReplaceAll(src, []byte(`Print($1)`))
        src = re2.ReplaceAll(src, []byte(`PrintLn($1)`))
        fmt.Printf("%s", src)
}

ここでも


出力:

Print(1, 3, "foo", 3*qux(42))
PrintLn("Enter bar: ")
于 2012-12-10T06:50:28.480 に答える