• Goにおけるタイムアウト制御の解決策

    前文 日々の開発の中で、時間のかかるタスクの一括処理、ネットワークリクエストなど、タイムアウト制御のシナリオに遭遇することがあると思います。優れたタイムアウト制御は、いくつかの問題を効果的に回避することができます (例. goroutine リーク、リソースの非放出など)。 タイマー goでタイムアウト制御を実装する方法は非常にシンプルで、まず最初のオプションで

    2022-02-14 01:57:44
  • Luaチュートリアル(10)。グローバル変数と非グローバル環境

    Luaは、すべてのグローバル変数を"environment"と呼ばれる通常のテーブルで管理しています。これは、グローバル変数_Gに格納されています。 1. グローバル変数の宣言。 Luaのグローバル変数は、宣言しなくても使用することができます。便利ではありますが、ペンシルエラーが発生した場合、発見しにくいエラーの原因となります。Gテーブルにメタテーブルを追加することで、グローバル

    2022-02-13 21:44:56
  • Luaチュートリアル(7)。データ構造の説明

    Luaのテーブルは単純なデータ構造ではなく、他のデータ構造の基礎として使用することができます。配列、レコード、線形テーブル、キュー、コレクションは全てLuaのテーブルで表現することができます。        1. 配列 Luaでは、テーブルのインデックスに整数を使用することで配列を実装することができます。そのた

    2022-02-13 21:37:52
  • Rubyメタプログラミング技術 (Ruby Metaprogramming techniques)

    最近、メタプログラミングについて考えることが多く、このテクニックの例や解説をもっと見たいと思います。良くも悪くも、メタプログラミングはRubyのコミュニティに浸透し、様々なタスクを達成し、コードを簡素化するための標準的な方法となっています。そのようなリソースが見つからないので、一般的なRubyのテクニックに関する記事をいくつか紹介します。これらは、他の言語からRubyに移ってきたプログラマや、R

    2022-02-13 21:16:44
  • Luaでsleep関数を実装する4つの方法

    残念ながら、Luaには組み込みのsleep関数がないので、DIYする必要があります。sleep関数を実装する方法は、以下の4つです。 方法1 コピーコード コードは以下の通りです。 --sets an exit condition in a dead loop, but this takes up a lot of CPU resources and is

    2022-02-13 19:48:42
  • Golang言語の学習は、Goの反射の例のチュートリアルをピンダウンする

    1. リフレクション入門 1.1 リフレクションとは? Go 言語は、変数やそれを呼び出すメソッド、それらがサポートする固有操作の値を実行時に更新・確認する仕組みを提供していますが、コンパイル時にはその内容を知ることなく specific types この機構は Reflection . Reflectionでは、型そのものを第一級の値型として扱うこともできます。 リフ

    2022-02-13 18:59:56
  • Luaチュートリアル(V)。イテレータとジェネリック・フォー

    1. イテレータとクロージャ。     Luaでは、イテレータは通常、関数であり、関数を呼び出すたびにコレクション内の"next"要素を返します。各イテレータは、呼び出しが成功するまでの間に何らかの状態を保持する必要があり、自分がどこにいて、次に走査されたときにどこにいるかが分かるようになっています。この観点から、Luaのクロージャ・メカニズムは、次の例に

    2022-02-13 16:22:08
  • Rubyのクラスインスタンス変数、クラスインスタンスメソッドとクラス変数、クラスメソッドの違いについて

    Rubyにおけるクラスインスタンス変数、クラスインスタンス・メソッド、クラス変数・メソッドの違いは微妙で、使い方もかなり異なります。この記事では、それらの定義と基本的な使用シナリオを調査し、光を当てる... I. クラスインスタンス変数とクラス変数 クラス変数は誰もが知っている、クラス定義にある@@で始まる変数のことです。クラス変数は、クラスのグローバルな情報を格納するために使用され、

    2022-02-13 16:12:58
  • Luaチュートリアル(XV)。入出力ライブラリ (I/O ライブラリ)

    I/Oライブラリでは、ファイル操作のモデルとして、シンプルモデルとフルモデルの2種類を用意しています。シンプルモデルは、現在の入力ファイルと現在の出力ファイルを想定しており、彼のI/O操作はすべてこれらのファイルに対して行われます。フルモデルでは、明示的なファイルハンドルを使用し、すべての操作をファイルハンドルのメソッドとして定義します。     1. シンプル

    2022-02-13 15:42:57
  • Luaチュートリアル(I)。導入、利点と応用シナリオ

    I. はじめに   軽量な組み込み用スクリプト言語として最もポピュラーでフリーなLuaは、Adobe社のPhotoshopなど多くの産業用アプリケーションや、Interstellarなどの有名なゲームプログラムでも広く使われています。それだけでなく、Luaはシンプルな構文(プロシージャベース)、効率的で安定した(バイトコードベース)、複雑なデータ構造を扱う能力、動的型付け、自動メモリ管

    2022-02-13 15:25:17
  • golangでのtarによるファイルの圧縮・解凍の詳細

    のデモが付属している公式ドキュメントをチェックしてみてください。 jdbc.driverClass=oracle.jdbc.driver.OracleDriver jdbc.url=jdbc:oracle:thin:@nantianpaydb.baidupay.com:8002:ntpzn jdbc.user=cif jdbc.password=cif #druid d

    2022-02-13 13:38:36
  • Luaチュートリアル(XVI)。システムライブラリ (os ライブラリ)

    Luaは高い移植性を確保するために設計されているため、標準ライブラリでは、特にOSに関連する機能はごくわずかしか提供されていません。しかし、LuaはPosixライブラリのような拡張機能も提供しています。ファイル操作については、os.rename関数とos.remove関数のみが提供されています。 1. 日付と時刻。 Luaでは、timeとdateという関数がすべての日付と時刻の関数を

    2022-02-13 11:40:33
  • Luaチュートリアル(6):コンパイルと実行でエラーが発生した場合

    1. コンパイルする     Luaにはdofileという関数が用意されており、Luaのコードブロックを実行するための組み込み操作となります。しかし、実際にはdofileは単なるヘルパー関数であり、loadfileが本当のコア関数です。dofileとは対照的に、loadfileは指定されたファイルからLuaブロックをロードし、ブロックをコンパイルして、コンパ

    2022-02-13 11:36:33
  • Golangの言語構造と変数について語る

    I. 言語構造と考察 package main // Declare the main package, indicating that it is currently an executable program import "fmt" // import the built-in fmt package func main(){ // The main function, whic

    2022-02-13 10:35:34
  • Luaチュートリアル(VIII)。データの永続化

    1. データファイル     Luaのテーブル構成要素を利用して、以下のようなLuaプログラムにとって非常に便利で分かりやすい方法で、ファイル内のデータをテーブルが構成し初期化するコードとするファイル形式を定義することができます。 コピーコード コードは以下の通りです。     Entry { "S

    2022-02-13 09:42:35
  • GoでHTTPSサーバを開発する6つの方法まとめ

    net/httpとfasthttp 2 HTTPプロトコルインターフェイスのクライアント側の実装を学習した後、次のステップは、サーバーの開発を開始する学習ショックを知らないが、2つのライブラリは、あまりにも便利なサーバーの開発をサポートします。JavaのHTTPServerの開発は基本的にSpringやSpringbootフレームワークを使用して、常に設定クラスの様々な、ハンドルオブジェクトの様

    2022-02-13 09:27:44
  • Luaでシステムコマンドを実行する方法

    Luaでは、os.executeでDosコマンドを実行できますが、デフォルトで出力されるシステムステータスコードを返します。 io.popen() も dos コマンドを実行しますが、ファイルを返します。 コピーコード コードは以下の通りです。 local t = io.popen('svn help') local a = t:read("*all") --

    2022-02-13 08:46:45
  • Luaによる分割関数の実装

    function split(s, delim) if type(delim) ~= "string" or string.len(delim) <= 0 then return end local start = 1 local t = {} while true do local pos = string.find (s, delim, start,

    2022-02-13 07:39:32
  • Luaチュートリアル(XIII)。テーブルを弱く参照する

    Luaはガベージコレクションによるメモリ管理機構を採用しているので、プログラマにとってはメモリ問題が気にならない場合が多いでしょう。しかし、どんなガベージコレクタも万全ではなく、特殊なケースでは、ガベージコレクタが現在のオブジェクトをクリーンアップすべきかどうかを正確に判断できないことがあります。そのため、多くのガベージオブジェクトが解放されないという結果になる可能性が高い。この問題を解決するた

    2022-02-13 06:33:15
  • Go並行プログラミング - sync.Onceの例

    I. シーケンス 名前だけで、このライブラリが何をするものか想像がつくでしょう。 sync.Once 使い方は簡単で、以下が簡単な使用例です。 package main import ( "fmt" "sync" ) func main() { var ( once sync.Once wg sync.WaitGroup ) for i := 0;

    2022-02-13 06:17:21