GOスライシングインデックスメカニズムの詳細な説明:単一の要素スライス傍受が境界を越えない理由
GOのスライスは、インデックス作成の動作が従来の配列とは異なる場合がある柔軟な動的配列です。この記事では、GOスライスインデックスの特性、特にシングル要素のスライス傍受がバウンド外のエラーを引き起こさない理由について詳しく説明します。
次のコードを検討してください。
func main(){ arr:= [] int {7} s:= arr [1:] fmt.println(s)// output [] }
このコードは、単一の要素7を含む整数スライスarr
を定義し、インデックス1から新しいスライスs
インターセプトしようとします。直感的に言えば、インデックス1は有効なarr
の範囲を超えており(インデックス0のみ)、エラーが報告されるべきだと思われます。ただし、プログラムは空のスライス[]
出力し、エラーは発生しませんでした。
これは、GOのスライスが半分のオープン間隔表現を使用しているためです。 [i:j]
インデックスi
から始まる要素、およびインデックスj
の前に始まる要素を意味します( j
を含まない)。したがって、 arr[1:]
インデックス1からスライスの端までのすべての要素を表します。 arr
には1つの要素しかなく、インデックス1の後に要素がないため、結果は空のスライスです。
この動作は、マルチ要素スライスの傍受と一致しています。例えば:
func main(){ arr:= [] int {7、2} s:= arr [:2] //はarr [0:2]に相当します fmt.println(s)// output [7 2] }
arr[:2]
インデックス0からインデックス2、つまりインデックス0と1を含む要素7と2の前の要素を表します。
スライス範囲を超えたインデックスからのインターセプトを許可しない場合、空のスライスを簡単に取得することはできません。空のスライスは多くのシナリオで役立つため、GO言語の設計は合理的です。 arr[1:]
indexは範囲外であるように思われますが、goのスライスメカニズムの下では、インデックス1から最後までのサブスライスとして正しく解釈され、結果は空のスライスであり、エラーではありません。この設計により、スライス操作のシンプルさと柔軟性が保証されます。
以上がGo Language Slice Index:シングル要素のスライス傍受が境界を越えないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

go语言有缩进。在go语言中,缩进直接使用gofmt工具格式化即可(gofmt使用tab进行缩进);gofmt工具会以标准样式的缩进和垂直对齐方式对源代码进行格式化,甚至必要情况下注释也会重新格式化。

go语言叫go的原因:想表达这门语言的运行速度、开发速度、学习速度(develop)都像gopher一样快。gopher是一种生活在加拿大的小动物,go的吉祥物就是这个小动物,它的中文名叫做囊地鼠,它们最大的特点就是挖洞速度特别快,当然可能不止是挖洞啦。

是,TiDB采用go语言编写。TiDB是一个分布式NewSQL数据库;它支持水平弹性扩展、ACID事务、标准SQL、MySQL语法和MySQL协议,具有数据强一致的高可用特性。TiDB架构中的PD储存了集群的元信息,如key在哪个TiKV节点;PD还负责集群的负载均衡以及数据分片等。PD通过内嵌etcd来支持数据分布和容错;PD采用go语言编写。

go语言需要编译。Go语言是编译型的静态语言,是一门需要编译才能运行的编程语言,也就说Go语言程序在运行之前需要通过编译器生成二进制机器码(二进制的可执行文件),随后二进制文件才能在目标机器上运行。

go语言能编译。Go语言是编译型的静态语言,是一门需要编译才能运行的编程语言。对Go语言程序进行编译的命令有两种:1、“go build”命令,可以将Go语言程序代码编译成二进制的可执行文件,但该二进制文件需要手动运行;2、“go run”命令,会在编译后直接运行Go语言程序,编译过程中会产生一个临时文件,但不会生成可执行文件。

删除map元素的两种方法:1、使用delete()函数从map中删除指定键值对,语法“delete(map, 键名)”;2、重新创建一个新的map对象,可以清空map中的所有元素,语法“var mapname map[keytype]valuetype”。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

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

ドリームウィーバー CS6
ビジュアル Web 開発ツール

WebStorm Mac版
便利なJavaScript開発ツール

ホットトピック



