プログラマーを混乱させる 10 の言語機能
各言語には、独自の機能、独特の構文、珍しい関数、または非標準の実行方法があります。そのため、初心者でも経験者でも、ある特集を見ていると突然酔ってしまうことがあります。この記事では、よく言われる10の「奇妙な」機能をまとめています。
1. Javascript: + はコネクタです
問題の説明: JS では、+ 記号は数値の間に使用され、通常の加算として使用できますが、文字に遭遇した場合は、文字コネクタとしても使用できます。例: '1' + 1 の結果は 11 です。
原因分析:
根本的な理由は、JS が弱い型付け言語であることです。たとえば、Python も文字コネクタとして + 記号を使用しますが、Python は厳密に型指定された言語であるため、整数に文字が追加されると、これがエラー操作であることを示すプロンプトが表示されます。
ネチズンの意見:
「問題は、これが予測できない必須のサイレント変換であり、無視されやすいことです。」 匿名
「JS は例外をスローすることでこの状況を処理する必要があります。」 crgwbr
「実行するには + を使用してください。」文字の連結は単に悪夢です。」Matteo Riva
2. Perl: モジュールは TRUE 値を返さなければなりません
問題の説明: ほとんどの場合、Perl モジュールは 1 で終了する必要があります。それ以外の場合、戻り値は です。最後のステートメントが TRUE ではない場合、システムはエラーを報告します。
原因分析:
Perlモジュールには初期コードとサブルーチンが含まれています。モジュール ファイルがロードされると、Perl は TRUE が返されるかどうかに基づいてコードが正常に実行されたかどうかを判断します。初期コードがない場合でも、Perl は最後のステートメントが TRUE を返すことを期待します。そうでない場合は、エラーが報告されます。
これは、三文字言葉の用法です)
問題の説明: 例えば、システムは??!を見た場合は自動的に | に変換し、??(を見た場合は自動的に変換しますto [. これにより、予期しない結果が簡単に発生し、コードの可読性が大幅に低下します 原因分析: プログラミングの初期には、中括弧などの特定の特殊文字をキーボードで直接入力できませんでした。この間接的な方法が使用されました ネチズンからの意見: 「Google ほどの知識があるなら、何を理解できないはずですか??!??!」 C は曖昧になり、理解するのが難しくなりました。」 Martin Beckett 4. PHP: 大文字と小文字を区別する処理 問題の説明: PHP の大文字と小文字の処理は、ある場所では区別され、他の場所では区別されません。例: 変数名と。定数名は区別されますが、関数名、メソッド名、クラス名は区別されません 原因の分析: おそらく、成熟したプログラミング言語に設定された CGI スクリプトから PHP の開発中に生じた成果物です。ネチズンの意見:
「これが、PHP プログラマがアンダースコアではなくアンダースコアを使用して関数に名前を付けることに慣れている理由です。」paperstreet7
PHP では、すべてが可能です。 : true 値としての 0
問題の説明:
Ruby では、0 値は TRUE 値と同等です
原因分析:
ブール値のみ。 FALSEとnilはFALSEに相当し、残りは2、3などと同等に扱われます
ネチズンの意見:
「意図は良いのに、これは単純に腹立たしい。 .” Chris Lutz
「0==true! ほぼ崩壊したC言語脳です!」 Kenny
6. Python: レベルをスペースの数で分割する
キーワードや句読点の使用とは異なります。 PY は、コードの各行を明確に分割するためにインデント レベルを使用します スペースの数が間違っている (または、スペースと転置文字の数が一貫していない) と、プログラムがエラーを報告する可能性があります
原因分析:
PY 作成者の意図は、コードを作成することですプログラマ自身がコードの明瞭性を維持する責任を負うべきだと思います:
「誠実に、これが私が PY から離れている根本的な理由です。」このような強制メカニズムが本当に必要です。本当に怠け者なのでしょうか。 "Joris Meys
7. C: 配列インデックスの動作モードはポインタの動作モードと同等です
問題の説明:
C では、a[i] と i[a] は交換可能で、両方の記述方法で同じ結果です。
原因分析: Cでは、メモリブロックの配列とポインタに違いはありません。つまり:
a[i] = *(a + i) = *(i + a ) = i[a].
ネチズンの意見:
「C言語のわかりにくいコード競争ではこれは価値がない。 "混乱
" "これにより、C 言語の核心、ポインター、およびメモリをより直接的に扱うことが明らかになったと思います。 ” Michael Neale
8. Perl の: 定義済み変数
問題の説明:
Perl には非常に長い特殊変数のリストがあり、その中の名前は非常に複雑です (ただし、対応する長い英語の単語もあります)。したがって、上級 Perl 開発者でない限り、Perl ドキュメントを繰り返し読むのが一般的です。
原因分析:
これらの変数は、プロセス ID ($$)、エラー メッセージ ($@)、正規表現の一致 ($^R) など、さまざまな意味を持ちます。
ネチズンの意見:
「とても迷惑だ!」 MatrixFrog
「合理化された開発者にとっては恩恵になるかもしれない。」 niXar
「これらの変数の問題は、Google では見つけられないことだ!」 JavaScript: セミコロンの自動挿入
問題の説明:
JS はステートメントの終わりの記号としてセミコロンを使用しており、コードが壊れてもセミコロンを自動的に挿入します。これは多くの場合エラーにつながります。
原因分析:
自動化の本来の目的は、特に初心者に利便性をもたらすことです。
ネチズンの意見:
「言語機能を設計するときに常にユーザーを愚か者だと見なしていると、問題が発生します。」Rob Van Dam
「JS で最も厄介なのは、fennec
の 1 つです。」10. Java: オートボクシングと整数キャッシュ
問題の説明:
Java は、int を An Integer オブジェクトに変換するなど、基本型データをオブジェクトに自動的に変換します (オートボクシング)。同時に、デフォルトでは、キャッシュされた Integer オブジェクトの値は -128 ~ 127 です。この場合、 == を使用して、同じ値を持つ 2 つの Integer オブジェクトを比較するときに問題が発生します (-128 と 127 内は TRUE、残りは FALSE)
原因分析:
自動ボックス化メカニズムにより、コード入力が削減されます整数キャッシュにより処理速度が向上します。
ネチズンの意見:
「幸いなことに、私は単なる C# プログラマーです。」 Will
「これは間違いではありませんが、数値処理にプリミティブ型 (ブール値など) を使用する理由になります。」ラビワラウ

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

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

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









世界初の AI プログラマー Devin の誕生から 1 か月も経たない 2022 年 3 月 3 日、プリンストン大学の NLP チームはオープンソース AI プログラマー SWE-agent を開発しました。 GPT-4 モデルを利用して、GitHub リポジトリの問題を自動的に解決します。 SWE ベンチ テスト セットにおける SWE エージェントのパフォーマンスは Devin と同様で、平均 93 秒かかり、問題の 12.29% を解決しました。専用端末と対話することで、SWE エージェントはファイルの内容を開いて検索したり、自動構文チェックを使用したり、特定の行を編集したり、テストを作成して実行したりできます。 (注: 上記の内容は元の内容を若干調整したものですが、原文の重要な情報は保持されており、指定された文字数制限を超えていません。) SWE-A

C言語学習の魅力:プログラマーの可能性を引き出す テクノロジーの発展に伴い、コンピュータプログラミングは大きな注目を集めている分野です。数あるプログラミング言語の中でもC言語は常にプログラマーに愛されています。そのシンプルさ、効率性、幅広い用途により、C 言語の学習は、多くの人にとってプログラミングの分野に入る最初のステップとなっています。この記事では、C言語を学ぶ魅力と、C言語を学ぶことでプログラマーの可能性を引き出す方法について解説します。 C言語学習の魅力は、まずその簡単さにあります。他のプログラミング言語と比較すると、C言語は

520 年が近づいています。彼は毎年恒例の犬を苦しめるショーのために再びここに来ました。最も合理的なコードと最もロマンチックな告白がどのように衝突するかを知りたいですか?最も完全で完全な広告コードを 1 つずつ見て、プログラマーのロマンスが女神の心を掴めるかどうかを確認してみましょう。

本篇文章给大家介绍如何用前端代码实现一个烟花绽放的绚烂效果,其实主要就是用前端三剑客来实现,也就是HTML+CSS+JS,下面一起来看一下,作者会解说相应的代码,希望对需要的朋友有所帮助。

先週、「2023PHP起業家精神」について厚生生放送を行いましたが、多くの学生から具体的な受注プラットフォームについての質問がありましたので、以下のphp中国語サイトに比較的信頼できる22のプラットフォームをまとめましたので参考にしてください。

プログラマーの職務責任: 1. ソフトウェア プロジェクトの詳細な設計、コーディング、組織化と内部テストの実施に責任を負います; 2. プロジェクト マネージャーおよび関連担当者が顧客とコミュニケーションを取り、良好な顧客関係を維持できるように支援します; 3. 需要調査とプロジェクトに参加します実現可能性パフォーマンス分析、技術的実現可能性分析、需要分析 4. ソフトウェア部門が開発したソフトウェア プロジェクトを提供するための関連ソフトウェア テクノロジに精通しており、熟練している 5. ソフトウェア開発の状況についてプロジェクト マネージャーにタイムリーにフィードバックする責任がある 6. . ソフトウェアの開発および保守に参加する プロセス中の主要な技術的問題を解決する; 7. 関連する技術文書などの作成に責任を負います。

VSCode の過去のバージョンをダウンロードしてインストールする VSCode のインストール ダウンロード インストール リファレンス VSCode のインストール Windows バージョン: Windows10 VSCode バージョン: VScode1.65.0 (64 ビット ユーザー バージョン) この記事

端末エミュレータを使用すると、標準のコンピュータ端末の機能をエミュレートできます。これを使用すると、データ転送を実行したり、別のコンピュータにリモートでアクセスしたりできます。 Windows 11 などの高度なオペレーティング システムと組み合わせると、これらのツールの創造的な可能性は無限大になります。ただし、サードパーティ製の端末エミュレータが多数提供されています。したがって、適切なものを選択するのは困難です。ただし、必須の Windows 11 アプリと同様に、お客様が使用して生産性を向上できる最適なターミナルを選択しました。最適な Windows 11 ターミナル エミュレーターを選択するにはどうすればよいですか?このリストのツールを選択する前に、当社の専門家チームはまず Windows 11 との互換性をテストしました。私たちもチェックしました
