• Go言語 構造体とメソッドの基本構文

    構造体はさまざまな種類のデータを保持するために使用され、その動作はメソッドの形で宣言することができます。この記事では、go言語における構造体とメソッド、およびquot;継承がどのように実装されているかを紹介します。 構造体の種類 構造体型(struct)は、go言語におけるオブジェクト指向プログラミングの重要なツールとして、重要な位置を占めています。goにはクラスの概念がないため、構

    2022-02-15 22:53:59
  • Go言語におけるエスケープ分析とは一体何なのでしょうか?

    1. エスケープ解析の紹介 コンパイル原理で、ポインタのダイナミックレンジを解析する方法をエスケープ解析と呼ぶことは、コンピュータを学ぶ人なら知っている。平たく言えば、あるオブジェクトへのポインタが複数のメソッドやスレッドから参照されることを、そのポインタを "escape" と呼ぶのです。 Goのエスケープ解析は、静的コード解析の後にコンパイラが行うメモリ管理の最適化と簡略

    2022-02-15 18:19:29
  • Goはパニックによるプログラムクラッシュの問題を解決するためにdefer+recoverを使用します

    事例紹介 : 並行スレッドを立ち上げたが、並行スレッドがパニックを起こした場合、並行スレッドをキャッチしないとプログラムがクラッシュしてしまうので、ゴルーチン内でrecoverを使ってパニックをキャッチしてメインスレッドに影響がないように処理します。 コードはこのようになります。 package main import ( "fmt" "time" ) func say

    2022-02-15 17:59:23
  • データ競争のためのGo並行プログラミング

    1. 前書き goでは同時並行プログラミングは非常に簡単で、go func()を使ってゴルーチンを起動して何かをさせるだけです。最も一般的なバグは、同じマップに書き込むなどのスレッドセーフの問題に関連するものです。 2. データ競合 スレッドセーフを検出する方法はありますか? その答えは、1.1という早い段階で導入されたデータレースタグです。テスト実行時やコンパイル時に-

    2022-02-15 17:35:01
  • 囲碁がGC問題の引き金になる場合の話

    初期の頃によく蔑まれたのが、ガベージコレクション(以後:GC)の仕組みでSTW(Stop-The-World)時間が長いことでした。そこで、現時点では、STWの開始として、Go言語がGCを発動するのはいつなのか? 1. GCとは何ですか? コンピュータサイエンスにおいて、ガベージコレクション(GC)は、プログラムで使われなくなったオブジェクトとそれが占めるメモリをガベージコレクタが回

    2022-02-15 17:08:16
  • 囲碁言語におけるCGOの実践的な使用

           部門製品のビジネス関数は、Golangによって開発されたが、いくつかの関数は、これらのように、ネットSNMP、bfdプロトコルなどのC言語で書かれている、あなたが再編集するGO言語を使用する場合、両方の実装の複雑さもかなり長い時間がかかる、良いことは、GO言語は、直接大幅に効率を改善し、削減GOコード内のCライブ

    2022-02-15 16:30:06
  • Go(...)の3つのポイントを徹底分析 使用方法

    ...」は、実はgoの構文解析の砂糖の一種です。 最初の用途は、主に関数が複数の不定引数を持ち、複数の不定引数を受け入れることができる場合である。 2つ目の用途は、スライスを分割して渡すことができることです。 例 package main import ( "fmt" ) func main(){ name(1,2,3,4,5,6,7,8,9) // mul

    2022-02-15 11:49:08
  • golang はシンプルなウェブソケット・チャットルーム機能を実装しています。

    基本中の基本。 1. golang.org/x/net/websocket パッケージが導入されました。 2. ポートでリスニングする。 3. クライアントが接続すると、その構造体を送信する。{"type":"login","uid":"I am username","msg":"Login successful"}' ...という構造体を送信します。ログイン情報を元に、サーバーは異

    2022-02-15 11:11:44
  • Golang開発における共有変数問題の解決方法

    Goのゴルーチン+チャンネルは、通信によってメモリを共有し、並行プログラミングを可能にします。 しかし、Goは変数を共有することによって、つまりメモリを共有することによって並行処理を実現する伝統的な方法も提供しています。この記事では、Goがそのために提供するメカニズムについて説明します。 1. レースとは Goプログラムを実行しているとき、同時に多くのゴルーチンが実行され、各ゴ

    2022-02-15 11:07:53
  • ピン留めされたボットを使用してGoでメッセージをプッシュする例

    Goを学んだ後、最近の空いたポイントを使って、フロントエンドのデプロイツールを書こうと思います。毎回コピー&ペーストする手間を省き、デプロイ開始前とデプロイ終了後にネイルメッセージをプッシュしたいと思います ピン留めボットを作成する これは比較的簡単です 追加した後、メッセージを送信するアドレスであるwebhookが表示されます。 プッシュメッセージ コー

    2022-02-15 10:39:17
  • go言語 yaml からマップへの変換、マップトラバーサルの実装

    yamlファイルの内容 apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: mysql-snapshot spec: privileged: false allowPrivilegeEscalation: false volumes: - "*" hostNetwork: false

    2022-02-15 09:27:39
  • Golangを他の言語と区別する9つの特徴

    プログラミング言語が進化していく中で、Goはまだ非常に若い言語です。最初にリリースされたのは、2009年11月10日です。開発者のロバート・グリーセマー(Robert Griesemer)は Rob Pike と Ken Thompson は Google に勤務していましたが、大規模なスケーリングという課題から、複数の開発者によって管理され、厳しいパフォーマンスが要求され、複数のネットワー

    2022-02-15 08:30:12
  • Goにおける文字列と[]byteの効率的な相互変換の例

    前置き データのシリアライズやデシリアライズの操作にgoを使う場合、文字列とバイト配列の間の変換を伴うことが多いかもしれません。例えば if str, err := json.Marshal(from); err ! = nil { panic(err) } else { return string(str) } jsonは[]byte型にシリアライ

    2022-02-15 04:20:56
  • Go サービスでリンクトレースを行う方法を説明します。

    Goでマイクロサービスを開発する場合、各リクエストのアクセスリンクを追跡する必要がありますが、Goにはこれに対する良いソリューションがありません。 これは、Javaでは、プロセス内でリクエストのRequestIdを共有するMDCを使うことで解決しやすくなります。 Goでリンクトレースを実装するには2つの考え方があります。1つはプロジェクトのグローバルマップを使い、キーはgorouti

    2022-02-15 03:38:20
  • GO言語GolangのHelloWorldへの導入

    概要 Golangは新しいクロスプラットフォームプログラミング言語です。今日は、ホワイトがあなたをGolangの世界へご案内します。(レッスン1) Goの言語構造 プログラミング言語Goの基本的な構成要素を学び始める前に、Go言語の構造を見てみましょう。 Go言語の基盤は、以下の構成要素で成り立っています。 パッケージ宣言 パッケージ関数変数文の導入

    2022-02-15 02:59:25
  • 小学生でもわかるGolangの例外処理リカバリーパニック

    ???? Golang、Python、Cloud Native、人工知能を専門とするブロガー ???? 過去の経験が重要なのは、あなたを導くことであり、あなたを定義することではありません。 ???? 努力すれば誰でも無限の可能性を持っている ???? パニック 例外を発生させる関数 回復するキャッチ例外関数 1:主結合内の例外をキャッチする packa

    2022-02-15 02:13:19
  • Go言語における20個のプレースホルダーのリスト

    I. コンセプト プレースホルダーとは何ですか?額面通りに受け取ればいいのです プレースホルダーには様々な種類があることを除けば プレースホルダーは誰のためでもなく 必須であり プログラムレベルでデータをフォーマットするために使われます。 第二に、どの機能が での Go 言語では、標準パッケージの fmt には、多くの書式付きユーティリティ関数があり、多くの場合

    2022-02-14 23:58:41
  • 囲碁相互排他ロックと読み書き相互排他ロックの実装

    このコードの問題点を見てみましょう。 jdbc.driverClass=oracle.jdbc.driver.OracleDriver jdbc.url=jdbc:oracle:thin:@nantianpaydb.baidupay.com:8002:ntpzn jdbc.user=cif jdbc.password=cif #druid datasource druid.initialS

    2022-02-14 23:20:29
  • go言語における並行処理のセキュリティとロックの説明

    この記事を読んで、ロックについての理解を深めることから始めるとよいでしょう。 GO並行プログラミングにおける相互排除ロックと読み取り/書き込みロック Mutex - 相互排除ロック Mutexは、主にCAS命令+スピン+セマフォで実装されています。 データ構造 var='LotArea' data=pd.concat(df_train['SalePrice'],

    2022-02-14 21:57:42
  • 囲碁におけるクロージャーの基本原理

    1. クロージャとは? 関数内部で外部ローカル変数を参照する関数をクロージャと呼びます。 例えば、この下のコードでは >>> def fun(arg): pass; >>> fun(1,arg=3); Traceback (most recent call last): File "<pyshell#15>", line 1,

    2022-02-14 21:20:02