从Java到Go的代码转换
我不知道Go的语法。谁能帮我把下面的java代码转换成谷歌的go语言从Java到Go的代码转换,go,Go,我不知道Go的语法。谁能帮我把下面的java代码转换成谷歌的go语言 import java.io.*; class FileWrite { public static void main(String args[]) { try { // Create file FileWriter fstream = new FileWriter("out.txt"); BufferedWriter out = new BufferedWriter(
import java.io.*;
class FileWrite
{
public static void main(String args[])
{
try {
// Create file
FileWriter fstream = new FileWriter("out.txt");
BufferedWriter out = new BufferedWriter(fstream);
out.write("Hello Java");
// Close the output stream
out.close();
} catch (Exception e){ //Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
}
此java代码创建一个名为out.txt的文件,并在该文件上写入一个字符串(Hello java)
package main
import (
"fmt"
"os"
)
func main() {
fd, err := os.Create("out.txt")
if err != nil {
fmt.Println(os.Stderr, err)
return
}
// defer calls a function at the end of the current function.
defer fd.Close()
fd.WriteString("Hello Gopher!\n")
}
我希望这有帮助。如果不清楚,请指定需要解释的部分。例如
package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
func main() {
f, err := os.Create("out.txt")
if err != nil {
fmt.Println(err)
return
}
defer f.Close()
wtr := bufio.NewWriter(f)
abc := 1
_, err = wtr.WriteString("Hello Go " + strconv.Itoa(abc) + " ok\n")
if err != nil {
fmt.Println(err)
return
}
err = wtr.Flush()
if err != nil {
fmt.Println(err)
return
}
}
file out.txt:
Hello Go 1 ok\n
package main
import (
"fmt"
"os"
"strconv"
)
func routine(fd *os.File) {
abc := 1
fd.WriteString("Hello Go " + strconv.Itoa(abc) + " ok\n")
fd.WriteString("\nHello Gopher!\n")
}
func main() {
fd, err := os.Create("out.txt")
if err != nil {
fmt.Println(err)
return
}
defer fd.Close()
abc := 1
fd.WriteString("Hello Go " + strconv.Itoa(abc) + " ok\n")
fd.WriteString("\nHello Gopher!\n")
routine(fd)
}
字符串文字表示从中获取的字符串常量
连接字符序列。有两种形式:生的
字符串文字和解释的字符串文字
原始字符串文字是反引号``之间的字符序列。
在引号中,除反引号外,任何字符都是合法的。价值
原始字符串的文本是由未解释的
引号之间的字符;特别是,反斜杠没有任何作用
特殊含义和字符串可能跨越多行
解释的字符串文字是介于两个字符之间的字符序列
引号为“”。引号之间的文本,不能跨越多个引号
行,形成文本的值,并使用反斜杠转义
解释为它们是字符文本(除了\'是
非法且\“合法)。三位八进制(\nnn)和两位数字
十六进制(\xnn)转义表示结果的单个字节
字符串;所有其他转义符表示(可能是多字节)UTF-8
单个字符的编码。因此在字符串文本中\377
和\xFF表示值0xFF=255的单个字节,而ÿ、\u00FF,
\U000000FF和\xc3\xbf表示UTF-8的两个字节0xc3 0xbf
字符U+00FF的编码
但是,如何解决这个问题呢
亚历山德罗
比如说,
package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
func main() {
f, err := os.Create("out.txt")
if err != nil {
fmt.Println(err)
return
}
defer f.Close()
wtr := bufio.NewWriter(f)
abc := 1
_, err = wtr.WriteString("Hello Go " + strconv.Itoa(abc) + " ok\n")
if err != nil {
fmt.Println(err)
return
}
err = wtr.Flush()
if err != nil {
fmt.Println(err)
return
}
}
file out.txt:
Hello Go 1 ok\n
package main
import (
"fmt"
"os"
"strconv"
)
func routine(fd *os.File) {
abc := 1
fd.WriteString("Hello Go " + strconv.Itoa(abc) + " ok\n")
fd.WriteString("\nHello Gopher!\n")
}
func main() {
fd, err := os.Create("out.txt")
if err != nil {
fmt.Println(err)
return
}
defer fd.Close()
abc := 1
fd.WriteString("Hello Go " + strconv.Itoa(abc) + " ok\n")
fd.WriteString("\nHello Gopher!\n")
routine(fd)
}
到目前为止,你得到了什么?你的语法有什么特别的困难吗?我不明白,如何在go中创建文件以及如何在其上书写。对不起,对于我的英语。你的“翻译”更准确,我的是自由格式的!这很好。我添加了abc:=1(整数声明)和wtr.WriteString(“Hello go”,abc,“ok\n”).Go不能将int与string一起打印?怎么可能?为什么wtr.WriteString(“Hello Go\n”)会将其带到新行?
“Hello Go\n”
是一个解释字符串文字,因此“\n”被解释为一个新行字符。这很好。我添加了abc:=1(整数声明)和fd.WriteString(“Hello Gopher!”,abc“ok\n”).Go不能将int和string一起打印?怎么可能?为什么wtr.WriteString(“Hello Gopher!\n”)会将其带到新行?