出力メソッド: 1. Print() 関数、コンソールに出力可能 (フォーマットは受け入れられません)、構文 "fmt.Print(str)"; 2. Println() 関数、これは次のとおりです。コントロールステーションへの出力と改行、構文は「fmt.Println(tmp)」です; 3. Printf() 関数はフォーマットされた文字列のみを出力できます; 4. Sprintf() 関数はフォーマットして文字列を返すことができます; 5. Fprintf()関数。フォーマットして「io.Writers」に出力できます。
このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。
Go 言語のいくつかの出力メソッドの違い
Print、Println、Printf
、<strong>Sprintf</strong>
、Fprintf
はすべて fmt パッケージのパブリック メソッドです。これらの関数は情報を出力するときに使用する必要があります。では、これらの関数の違いは何でしょうか?
Print: 输出到控制台(不接受任何格式化,它等价于对每一个操作数都应用 %v) fmt.Print(str) Println: 输出到控制台并换行 fmt.Println(tmp) Printf : 只可以打印出格式化的字符串。只可以直接输出字符串类型的变量(不可以输出整形变量和整形 等) fmt.Printf("%d",a) Sprintf:格式化并返回一个字符串而不带任何输出。 s := fmt.Sprintf("a %s", "string") fmt.Printf(s) Fprintf:格式化并输出到 io.Writers 而不是 os.Stdout。 fmt.Fprintf(os.Stderr, “an %s\n”, “error”)
通常、出力情報をフォーマットする必要がある場合は Printf を選択し、それ以外の場合は Println
Printf フォーマットの出力を使用します
1 、一般的なプレースホルダー:
v 值的默认格式。 %+v 添加字段名(如结构体) %#v 相应值的Go语法表示 %T 相应值的类型的Go语法表示 %% 字面上的百分号,并非值的占位符
2、ブール値:
%t true 或 false
3、整数値:
%b 二进制表示 %c 相应Unicode码点所表示的字符 %d 十进制表示 %o 八进制表示 %q 单引号围绕的字符字面值,由Go语法安全地转义 %x 十六进制表示,字母形式为小写 a-f %X 十六进制表示,字母形式为大写 A-F %U Unicode格式:U+1234,等同于 "U+%04X"
4. 浮動小数点数と複素数:
%b 无小数部分的,指数为二的幂的科学计数法,与 strconv.FormatFloat中的 'b' 转换格式一致。例如 -123456p-78 %e 科学计数法,例如 -1234.456e+78 %E 科学计数法,例如 -1234.456E+78 %f 有小数点而无指数,例如 123.456 %g 根据情况选择 %e 或 %f 以产生更紧凑的(无末尾的0)输出 %G 根据情况选择 %E 或 %f 以产生更紧凑的(无末尾的0)输出
5. 文字列とバイトのスライス表現:
%s 字符串或切片的无解译字节 %q 双引号围绕的字符串,由Go语法安全地转义 %x 十六进制,小写字母,每字节两个字符 %X 十六进制,大写字母,每字节两个字符
6. ポインタ:
%p 十六进制表示,前缀 0x
ここには「u」タグはありません。整数が符号なしタイプの場合、それらは符号なしとして出力されます。同様に、オペランドのサイズ (int8、int64) を指定する必要はありません。
7. %v のデフォルトの形式は次のとおりです:
bool: %t int, int8 etc.: %d uint, uint8 etc.: %d, %x if printed with %#v float32, complex64, etc: %g string: %s chan: %p pointer: %p
デフォルトの出力形式は、出力がそうでない限り、%v を使用して指定できることがわかります。デフォルトとは異なる他の形式の場合は、代わりに %v を使用できます (ただし、お勧めしません)
8. 複合オブジェクトの場合:
内部の要素は次のとおりです。次のように使用されます 印刷規則:
struct: {field0 field1 ...} array, slice: [elem0 elem1 ...] maps: map[key1:value1 key2:value2] pointer to above: &{}, &[], &map[]
9、幅と精度:
幅は % の後の値です。指定されていない場合は、値のデフォルト値が使用されます。が使用され、精度は幅に続く値です。指定しない場合は、出力される値のデフォルトの精度が使用されます。例: %9.2f、幅 9、精度 2
%f: default width, default precision %9f width 9, default precision %.2f default width, precision 2 %9.2f width 9, precision 2 %9.f width 9, precision 0
数値の場合、幅は数値が占める領域の最小幅であり、精度は小数点以下の桁数です。ただし、%g/%G の場合、精度は合計桁数です。たとえば、123.45 の場合、%6.2f 形式では 123.45 が出力され、%.4g では 123.5 が出力されます。 %e と %f のデフォルトの精度は 6 ですが、 %g のデフォルトの精度は、値を決定するために必要な最小桁数です。
ほとんどの値では、幅は出力する最小文字数であり、書式設定されたフォームで必要に応じてスペースが埋められます。文字列の場合、精度は出力される文字の最大数であり、必要に応じて直接切り捨てられます。
Width は「必要な最小幅」を指し、結果文字列の幅が指定幅を超える場合、指定幅は無効となります。
幅を「*」として指定した場合、幅の値はパラメータから取得されます。
「.」の直後の数字列は精度を表します(「.」のみの場合は「.0」)。整数標識 (`d'、`i'、`b'、`o'、`x'、`X'、`u') が見つかった場合、精度は数値部分の長さを示します
浮動小数点標識 (`f') が見つかった場合、それは小数部の桁数を表します。
浮動小数点標識 (`e'、`E'、`g'、`G') が見つかった場合、それは有効桁数を示します
精度が設定されている場合` *' にすると、精度の値がパラメータから抽出されます。
文字列 %s または浮動小数点型 %f の場合、精度によりデータの長さが切り捨てられる可能性があります。次のように。
func main() { a := 123 fmt.Printf("%1.2d\n", a) //123,宽度为1小于数值本身宽度,失效,而精度为2,无法截断整数 b := 1.23 fmt.Printf("%1.1f\n", b) //1.2,精度为1,截断浮点型数据 c := "asdf" fmt.Printf("%*.*s\n", 1, 2, c) //as,利用'*'支持宽度和精度的输入,并且字符串也可以利用精度截断 }
10. その他のフラグ:
+ 总打印数值的正负号;对于%q(%+q)保证只输出ASCII编码的字符。 - 左对齐 # 备用格式:为八进制添加前导 0(%#o),为十六进制添加前导 0x(%#x)或0X(%#X),为 %p(%#p)去掉前导 0x;对于 %q,若 strconv.CanBackquote 返回 true,就会打印原始(即反引号围绕的)字符串;如果是可打印字符,%U(%#U)会写出该字符的Unicode编码形式(如字符 x 会被打印成 U+0078 'x')。 ' ' (空格)为数值中省略的正负号留出空白(% d);以十六进制(% x, % X)打印字符串或切片时,在字节之间用空格隔开 0 填充前导的0而非空格;对于数字,这会将填充移到正负号之后
Printf クラスのすべての関数には、Print 関数があります。この関数は書式設定を受け入れません。各オペランドと同等です。両方が適用されます。 %v.もう 1 つの可変パラメータ関数である Println は、オペランドの間に空白を挿入し、最後に改行文字
を追加します。プレースホルダが考慮されない場合、オペランドがインターフェイス値の場合、その内部固有の値が使用されます。 . インターフェイス自体ではなく。以下に示すように:
package main import ( "fmt" ) type Sample struct { a int str string } func main() { var i interface{} = Sample{1, "a"} fmt.Printf("%v\n", i) //{1 a} }
11. パラメータ プレースホルダの表示:
Go は、以下に示すように、出力形式で出力の順序を指定することによってパラメータ プレースホルダの表示をサポートします:
func main() { fmt.Printf("%[2]d, %[1]d\n", 11, 22) //22, 11,先输出第二个值,再输出第一个值 }
12. 書式設定エラー:
無効な引数がプレースホルダーに指定された場合 (%d に文字列を指定した場合など)、書式設定エラーが発生します。すべてのエラーは「%!」で始まり、場合によってはその後に 1 文字 (プレースホルダー) が続き、括弧で囲まれた説明で終わります。
func main() { var i int = 1 fmt.Printf("%s\n", i) //%!s(int=1) }
出力例
package main import "fmt" import "os" type point struct { x, y int } func main() { //Go 为常规 Go 值的格式化设计提供了多种打印方式。例如,这里打印了 point 结构体的一个实例。 p := point{1, 2} fmt.Printf("%v\n", p) // {1 2} //如果值是一个结构体,%+v 的格式化输出内容将包括结构体的字段名。 fmt.Printf("%+v\n", p) // {x:1 y:2} //%#v 形式则输出这个值的 Go 语法表示。例如,值的运行源代码片段。 fmt.Printf("%#v\n", p) // main.point{x:1, y:2} //需要打印值的类型,使用 %T。 fmt.Printf("%T\n", p) // main.point //格式化布尔值是简单的。 fmt.Printf("%t\n", true) //格式化整形数有多种方式,使用 %d进行标准的十进制格式化。 fmt.Printf("%d\n", 123) //这个输出二进制表示形式。 fmt.Printf("%b\n", 14) //这个输出给定整数的对应字符。 fmt.Printf("%c\n", 33) //%x 提供十六进制编码。 fmt.Printf("%x\n", 456) //对于浮点型同样有很多的格式化选项。使用 %f 进行最基本的十进制格式化。 fmt.Printf("%f\n", 78.9) //%e 和 %E 将浮点型格式化为(稍微有一点不同的)科学技科学记数法表示形式。 fmt.Printf("%e\n", 123400000.0) fmt.Printf("%E\n", 123400000.0) //使用 %s 进行基本的字符串输出。 fmt.Printf("%s\n", "\"string\"") //像 Go 源代码中那样带有双引号的输出,使用 %q。 fmt.Printf("%q\n", "\"string\"") //和上面的整形数一样,%x 输出使用 base-16 编码的字符串,每个字节使用 2 个字符表示。 fmt.Printf("%x\n", "hex this") //要输出一个指针的值,使用 %p。 fmt.Printf("%p\n", &p) //当输出数字的时候,你将经常想要控制输出结果的宽度和精度,可以使用在 % 后面使用数字来控制输出宽度。默认结果使用右对齐并且通过空格来填充空白部分。 fmt.Printf("|%6d|%6d|\n", 12, 345) //你也可以指定浮点型的输出宽度,同时也可以通过 宽度.精度 的语法来指定输出的精度。 fmt.Printf("|%6.2f|%6.2f|\n", 1.2, 3.45) //要最对齐,使用 - 标志。 fmt.Printf("|%-6.2f|%-6.2f|\n", 1.2, 3.45) //你也许也想控制字符串输出时的宽度,特别是要确保他们在类表格输出时的对齐。这是基本的右对齐宽度表示。 fmt.Printf("|%6s|%6s|\n", "foo", "b") //要左对齐,和数字一样,使用 - 标志。 fmt.Printf("|%-6s|%-6s|\n", "foo", "b") //到目前为止,我们已经看过 Printf了,它通过 os.Stdout输出格式化的字符串。Sprintf 则格式化并返回一个字符串而不带任何输出。 s := fmt.Sprintf("a %s", "string") fmt.Println(s) //你可以使用 Fprintf 来格式化并输出到 io.Writers而不是 os.Stdout。 fmt.Fprintf(os.Stderr, "an %s\n", "error") }
[関連する推奨事項: Go ビデオ チュートリアル、プログラミング教育]
# #
以上がGo言語の出力メソッドには何がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Cは、ハードウェアリソースと高性能の最適化が必要なシナリオにより適していますが、Golangは迅速な開発と高い並行性処理が必要なシナリオにより適しています。 1.Cの利点は、ハードウェア特性と高い最適化機能に近いものにあります。これは、ゲーム開発などの高性能ニーズに適しています。 2.Golangの利点は、その簡潔な構文と自然な並行性サポートにあり、これは高い並行性サービス開発に適しています。

Golangは実際のアプリケーションに優れており、そのシンプルさ、効率性、並行性で知られています。 1)同時プログラミングはゴルチンとチャネルを通じて実装されます。2)柔軟なコードは、インターフェイスと多型を使用して記述されます。3)ネット/HTTPパッケージを使用したネットワークプログラミングを簡素化、4)効率的な同時クローラーを構築する、5)ツールと最高の実践を通じてデバッグと最適化。

GOのコア機能には、ガベージコレクション、静的リンク、並行性サポートが含まれます。 1. GO言語の並行性モデルは、GoroutineとChannelを通じて効率的な同時プログラミングを実現します。 2.インターフェイスと多型は、インターフェイスメソッドを介して実装されているため、異なるタイプを統一された方法で処理できます。 3.基本的な使用法は、関数定義と呼び出しの効率を示しています。 4。高度な使用法では、スライスは動的なサイズ変更の強力な機能を提供します。 5.人種条件などの一般的なエラーは、Getest Raceを通じて検出および解決できます。 6.パフォーマンス最適化Sync.Poolを通じてオブジェクトを再利用して、ゴミ収集圧力を軽減します。

GO言語は、効率的でスケーラブルなシステムの構築においてうまく機能します。その利点には次のものがあります。1。高性能:マシンコードにコンパイルされ、速度速度が速い。 2。同時プログラミング:ゴルチンとチャネルを介してマルチタスクを簡素化します。 3。シンプルさ:簡潔な構文、学習コストとメンテナンスコストの削減。 4。クロスプラットフォーム:クロスプラットフォームのコンパイル、簡単な展開をサポートします。

SQLクエリの結果の並べ替えについて混乱しています。 SQLを学習する過程で、しばしば混乱する問題に遭遇します。最近、著者は「Mick-SQL Basics」を読んでいます...

テクノロジースタックの収束とテクノロジーの選択の関係ソフトウェア開発におけるテクノロジーの選択、テクノロジースタックの選択と管理は非常に重要な問題です。最近、一部の読者が提案しています...

ゴーラン...

GO言語で3つの構造を比較および処理する方法。 GOプログラミングでは、2つの構造の違いを比較し、これらの違いを...


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

メモ帳++7.3.1
使いやすく無料のコードエディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 中国語版
中国語版、とても使いやすい
