我来自JS领域,主要使用过console.log
或console.error
现在,我正在关注的教程中,那里的讲师做了类似的事情
package main
import "fmt"
func main() {
var FirstName = "Varun"
var lastName = "bindal"
fmt.Println(FirstName, lastName)
fmt.Printf("%T", FirstName)
}
在这里,他做了PrintF而不是Println来检查类型。最初,我认为println在新行中打印,所以我更改了
fmt.Printf("%T", FirstName)
到
fmt.Println("%T", FirstName)
但这会记录%T Varun
而不是告诉我类型。
我去了他们的site to figure it out,或者无法理解它,或者找不到它。
谷歌搜索使我知道Go中有三种记录/打印方式
那么,如果有人打电话告诉他们三个之间的区别?
答案 0 :(得分:4)
Printf->“ Print Formatter”此功能允许您将数字,变量和字符串格式化为您提供的第一个字符串参数。
Println->“ Print Line”这不能格式化任何东西,它只接受一个字符串,打印并附加一个换行符'/ n'。
打印->“打印”与Println相同的内容,但是不会附加换行符
答案 1 :(得分:1)
就像Nate所说的那样: var result = '[[{"type":"text","label":"step 1","className":"form-control","name":"text-1545217902718","subtype":"text"}],[{"type":"text","label":"step 2","className":"form-control","name":"text-1545217905331","subtype":"text"}],[{"type":"text","label":"step 3","className":"form-control","name":"text-1545217906652","subtype":"text"}],[{"type":"text","label":"step 4","className":"form-control","name":"text-1545217908197","subtype":"text"}]]';
// result contains multi-tab json data.
var res = jQuery.parseJSON(result);
var stepLen = res.length;
var j;
for (var i = 1; i <= stepLen; i++) {
j = i+1;
var final_tab_id = j
var tabId = "step-" + j.toString();
var $newPageTemplate = $(document.getElementById("new-step"));
var $newPage = $newPageTemplate.clone().attr("id",tabId).addClass("fb-editor");
var $newTab = $('#add-step-tab').clone().removeAttr("id");
var $tabLink = $("a", $newTab).attr("href", "#" + tabId).text("Step " + j);
$newPage.insertBefore($newPageTemplate);
$newTab.insertBefore('#add-step-tab');
$fbPages.tabs("refresh");
$fbPages.tabs("option", "active", i);
fbInstances.push($newPage.formBuilder(fbOptions));
formBuilder2.actions.setData(res[i-1])
}
和fmt.Print
打印原始字符串(fmt.Println
附加换行符)
fmt.Println
将不会打印新行,您必须使用fmt.Printf
将其添加到最后。
\n
的工作方式很简单,您提供了一个包含某些符号的字符串,而其他参数替换了这些符号。例如:
fmt.Printf
在这种情况下,fmt.Printf("%s is cool", "Bob")
代表一个字符串。就您而言,%s
打印出变量的类型。
答案 2 :(得分:1)
要回答您的问题,
fmt.Print
与\n
和“”就像fmt.Println
。
fmt.Printf
和\n
和%v
就像fmt.Println
。
如本例所示:
package main
import "fmt"
func main() {
const name, age = "Kim", 22
//
fmt.Print(name, " is ", age, " years old.\n") // Kim is 22 years old.
fmt.Printf("%v is %v years old.\n", name, age) // Kim is 22 years old.
fmt.Println(name, "is", age, "years old.") // Kim is 22 years old.
//
print(name, " is ", age, " years old.\n") // Kim is 22 years old.
println(name, "is", age, "years old.") // Kim is 22 years old.
}
print
和println
就像fmt.Print
和fmt.Println
一样有限定条件。参见https://stackoverflow.com/a/48420811/12817546和https://stackoverflow.com/a/14680544/12817546。
Go提供了许多其他格式化I / O的方法。参见https://golang.org/pkg/fmt。
答案 3 :(得分:0)
fmt.Println(“ Pi的值:”,math.Pi)
fmt.Printf(“ Pi的值:%g”,math.Pi)
期望//
Pi值:3.141592653589793
Pi值:3.141592653589793