golang 没有fmt.Printf的Golang quine

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang 没有fmt.Printf的Golang quine相关的知识,希望对你有一定的参考价值。

package main
func main() {q := "\x60";(func(p,s string){print(p,q,p,q,",",q,s,q,s)})(`package main
func main() {q := "\x60";(func(p,s string){print(p,q,p,q,",",q,s,q,s)})(`,`)}`)}

Golang basic_leamingfmt.Print, fmt.Printf, fmt.Println 的区别

阅读目录

fmt 包

fmt = format,是一种格式化输出函数汇总包,用于格式化输出。

fmt.Print 原样输出

package main

import (
	"fmt"
)

const name, age = "willem", 32

func main() 
	fmt.Print("%s", name, "%d", age)


// 输出:%swillem%d32

fmt.Printf 格式输出

使用方法:

fmt.Printf("%格式1%格式2", 变量值1, 变量2)
package main

import (
	"fmt"
)

func main() 
	const name, age = "willem", 32
	// fmt.Printf(name, age) // 输出结果:willem%!(EXTRA int=32)
	fmt.Printf("%s%d", name, age) // 输出结果:willem32

常见的格式输出形式:

  • %s — 字符串
  • %d — 10进制数值
  • %T — type(值)

fmt.Println 值 + 空格 输出

package main

import (
	"fmt"
)

func main() 
	const name, age = "willem", 22
	fmt.Println(name, age) // 输出结果 willem 空格 22

换行输出

package main

import (
	"fmt"
)

func main() 
	const name, age = "willem", 22
	fmt.Println(name, "\\n", age) // 输出结果 willem 空格 22

Println 和 Print 区别

Println 会自动换行 Print 不会。

package main

import (
	"fmt"
)

func main() 
	fmt.Println("A")
	fmt.Println("B")
	fmt.Println("C")


func main() 
	fmt.Print("A")
	fmt.Print("B")
	fmt.Print("C")

Println 和 Printf 区别

 package main

import (
	"fmt"
)

func main() 
	// go 语言中定义变量必须要使用
	// var a = "aaa"
	var c int = 10
	var e int = 3
	var f int = 5

	// fmt.Println("c=", c, "e=", e, "f=", f)
	// 输出格式:c= 10 e= 3 f= 5

	fmt.Printf("c=%v e=%v f=%v", c, e, f)
	// 输出格式:c=10 e=3 f=5

换行输出:

func main() 
	// go 语言中定义变量必须要使用
	// var a = "aaa"
	var c int = 10
	var e int = 3
	var f int = 5

	// fmt.Println("c=", c, "e=", e, "f=", f)
	// 输出格式:c= 10 e= 3 f= 5

	fmt.Printf("c=%v e=%v f=%v \\n", c, e, f)
	fmt.Printf("c=%v e=%v f=%v", c, e, f)
	// 输出格式:c=10 e=3 f=5

变量

类型推导方式定义变量

func main() 
	// 类型推导方式定义变量
	a := 10
	b := 20
	c := 30

	fmt.Printf("a=%v b=%v c=%v", a, b, c)
	// 输出:a=10 b=20 c=30

使用 Printf打印一个变量的类型

func main() 
	// 类型推导方式定义变量
	a := 10

	fmt.Printf("a=%v a的类型是%T", a, a)
	// 输出:a=10 a的类型是int

以上是关于golang 没有fmt.Printf的Golang quine的主要内容,如果未能解决你的问题,请参考以下文章

Golang basic_leamingfmt.Print, fmt.Printf, fmt.Println 的区别

golang输出双精度浮点例子(Printf)

golang之array

golang打印切片地址

Golang 结构体指针方法和值方法

Golang之(if)流程控制