ひとモノ … 1-mono- Programing
目次
プログラミング初心者向けのD言語講座です。
かなり初歩的な部分から教えていきます。
プログラミング初心者向けのD言語講座です。
D言語入門講座とはまた違った方向性です。
D言語のメモ
小物
D言語入門講座
筆者からのあいさつ。
書くに当たって参考にしたもの。
この講座のスタイル的に、どういう見方をするといいのかとか。
まずは、とりあえず出力ができるようにします。
すべての基本…かな。
keyword : writef, 文字列, コメント, //
\nを使って、出力に改行を入れてみます。
keyword : \n, writefln
コメントをまとめて記述する方法を説明します。
keyword : /+ ... +/, /* ... */
数値の出力。
keyword : 標準出力, 数値と文字列
書式を使った出力をする方法をします。
keyword : %s %d %f
四則演算:足し算、引き算、掛け算、割り算のこと・・・についてです。
keyword : +, -, *, /
余剰についてです。つまり、割り算したあまりの数のこと。
keyword : %
文字列の演算です。
keyword : ~
変数:数学でいう、xやyのこと・・・の説明についてです。
数学で熟知しているなら軽く読み流しましょう。
keyword : 変数
プログラミングでの変数、特に「型」についておはなしします。
keyword : 型, 整数, int, 実数, real, 文字列, char[]
プログラミングでの変数の使い方です。
keyword :
変数を使ってできること①ってかんじで、とりあえず文字列を入力をして見ます。
keyword : readln
整数や実数なども入力することができます。
keyword : chomp, toInt, toReal
プログラムを、入力にあわせて分岐する方法…入力の条件を満たしたら実行する文を説明します。
keyword : bool, if, <, >, ==
ifで取り逃がしたときのみ実行する方法として、else文を説明します。
keyword : else
条件でいくつも分岐したい場合、は、else ifとするといいです。
keyword :
何回も繰り返して同じ様なことをしたい場合…while文についての説明です。
あんまり使わないのですが、後述のforより構文が簡単なので、とりあえずこちらが先です。
keyword : while, break, continue
whileよりたぶん使うことの多い、for文です。
keyword : for
関数:数学でいう、f(x)やg(x)のこと・・・の説明についてです。
数学で熟知しているなら軽く読み流しましょう。
keyword : 変数
プログラミングでの関数、特に引数や、戻り値についておはなしします。
keyword : 引数, 実引数, 仮引数, 戻り値
数学で f(x)=3x+2 のようにしていたことを、プログラミングで表現しようとすると…
という、定義の仕方について説明します。
keyword :
数学で f(4) のようにしていたことを、プログラミングで表現しようとすると…
という、使い方について説明します。
keyword :
配列を、あえて数学でたとえるならば、多次元のベクトルって感じなんでしょうか…。
要はたくさんの変数をひとまとめにしたようなものです。
まぁ、そんな配列について概要を語ります。
keyword : 配列
固定個数の変数をまとめた配列、静的配列の定義と使い方です。
keyword : 静的配列
可変個数の変数をまとめた配列、動的配列の定義と使い方です。
keyword : 動的配列
いろんな変数をひとまとめにしたようなもの、構造体の概要を説明します。
keyword : 構造体
構造体の定義と使い方。
keyword : struct
ポインタの概要を教えます。
難しいけれども、学ぶと得することが多いので、一応。
10-02を先に見たほうがわかりやすいかもしれない。
keyword : ポインタ
ポインタを使うとどのようなうまみがあるのかについて教えます。
keyword :
実際にどうやったらいいかについて教えます。
keyword : &, *
変数の寿命について説明します
keyword : ブロック, 自動変数
静的変数について説明します
keyword : static, 静的変数
スコープの意味と、局地的なスコープ「ローカルスコープ」について
keyword : スコープ, ローカルスコープ
大域的なスコープ「グローバルスコープ」について
keyword : ローカルスコープ
ファイル内のみのスコープ「ファイルスコープ」について
keyword : ファイルスコープ
構造体を初期化するのに便利な文法 with文を紹介します
keyword : with
処理の振り分けに便利な switch 文について紹介します。
keyword : switch, case
配列などのすべての要素に対する処理を行うのに便利な foreach 文について紹介します。
keyword : foreach, ref
超強力(笑)な goto 文について説明します。
keyword : goto, ラベル
オブジェクト指向の入り口。導入。入門。その類義語。
今までの内容でオブジェクト指向を行います。
まずは感覚から。
keyword : クラス, インスタンス
14-01をもっとわかりやすくスマートに記述しようとすると、メンバ関数というものがほしくなります。
keyword : メンバ変数, メンバ関数, ., フリー関数
クラスについて定義の仕方と使用方法について。
keyword : class, new
カプセル化の意義とやり方について。
keyword : private, public
コンストラクタについて。
インスタンス生成時に自動的に初期化するにはどうしたらよいか。
keyword : this()
コンストラクタに引数をつけてみる。
インスタンス生成時に初期化の設定を手動で行うにはどうしたらよいか。
keyword : this(type arg ... )
名前は同じでも引数が違う場合、同じ名前の関数を複数定義することが可能です。
そんなオーバーロードについて。
keyword : オーバーロード, リテラル, float, double
読み取り専用の引数にはinをつけましょう。
keyword : in
読み込みと書き換えを行う引数にはrefをつけましょう
keyword : ref, out
引数にデフォルトの値を付けることで、引数を省略することができたりします。
keyword :
プロパティとは何か、ということと、型ごとの特性を得るためのプロパティの利用について。
keyword :
関数のプロパティ的な用法。
keyword :
配列のプロパティ的な用法。
keyword :
クラスについて定義の仕方と使用方法について。
keyword : 継承(派生), 継承元(派生元), 継承先(派生先)
カプセル化の続編。
継承先でも利用できるけど外部からは利用できない変数や関数の定義。
keyword : protected
継承元のクラスの関数を上書きします。
keyword : オーバーライド, override, final
継承先のクラスから、継承元のコンストラクタを呼び出します。
keyword : super
整数と実数の相互変換、つまりキャストについて。
keyword : cast
継承先から継承元へのキャスト。
keyword :
インターフェースの利用価値や作り方、使い方について。
keyword : interface
複数のインターフェースを継承したクラスを作る。
keyword : 継承(is-a), 包含(has-a)
すでにやった静的変数のstaticと、RAIIを実現するscope、型推論を行うautoについて。
keyword : scope, auto
値も参照先の値が変わることのない記憶域 invariant
値も参照先の値を変えてはいけない記憶域 const
keyword : 記憶域, invariant記憶域, const記憶域
invariant型とconst型について。
keyword : invariant型, const型
invariant記憶域とconst記憶域とfinal記憶域について。
keyword : invariant記憶域, const記憶域
キャストにはどのような種類があるのか。
それぞれの特徴を大雑把に。
keyword :
19-01 の型変換や型変更について使いどころなど詳しく説明。
keyword :
const外し、invariant外し、invariant化の使いどころなどについて詳しく説明。
keyword :
アップキャスト、ダウンキャスト、クロスキャストの使いどころなどについて詳しく説明。
keyword :
デリゲートとはどのようなもので、どのような場合に役に立つのか。
keyword : delegate
デリゲートの書き方と使い方について
keyword :
デリゲートと関数ポインタの関係について。
keyword : function
クロージャについて
keyword : クロージャ(closure)
⑨でもわかる!パチュリーのD言語講座
人物の紹介
あいさつ
どんな感じで進めていくかについて。
第01回目の概要を説明します。
dmd コンパイラと、 Tango ライブラリのインストールについて説明します。
dsss のインストールについて説明します。
"Hello, world."プログラム をつくります。
作ったプログラムをコンパイルします。
コンパイルしたプログラムを実行します。
第02回目の概要を説明します。
必要なライブラリファイルを集めます。
DFLをインストールします。
GUIで "Hello, world."プログラム をつくります
GUIプログラムのコンパイルと実行をします。
第03回目の概要を説明します。
tango.core.Array.find について
コードはこちらから
tango.core.Array.count について
コードはこちらから
tango.core.Array.-If について
コードはこちらから
tango.core.Array.sort について
コードはこちらから
第04回目の概要を説明します。
コンソールを用いた標準入出力の、出力のお話
Stdoutと、書式について
コンソールを用いた標準入出力の、入力のお話。
文字列の入力や数値の入力について。
文字列から数値への変換も取り扱います。
テキストファイルへの出力を行います。
テキストファイルの読み込みを行います。
バイナリファイルの書き込みを行います。
バイナリファイルの読み込みを行います。
第04回目の概要を説明します。
XMLファイルを読み込みます。
コードはこちらから
Dメモ
適当な個人的メモ。
小物
ダウンロードはリンク先で。
このソフトウェアはD言語のDDocとJavadocに対応した、ドキュメント化コメントを機械的に生成するための小物です。
適当に入力すると、適当なフォーマットでクリップボードにコピーされます。
適当なテキストエディタと併用して使います。
あんまり便利になる感じはしませんが、自分用に適当に作りました。
割と適当に常用してます。
このソフトウェアはメッセンジャーのログのテキストを正規表現によってFSWikiのスタイルに自動変換するための小物です。
やる気無げなGUIのツールです。
1時間ちょいで気軽に作ったものなので、サポートとか全くする気ありませんが、D言語(TangoとDFL)を使ったアプリケーションのサンプル的な感覚でご覧ください。
ある一定のフォルダに次々とファイルをD&Dしてシンボリックリンク/ハードリンク/ジャンクションを作成していくための小物です。
やはりこれもやる気無げなGUIのツールです。
4時間ちょいで気軽に作ったものなので、サポートとか真面目にする気ありませんが、D言語(TangoとDFL)を使ったアプリケーションのサンプル的な感覚でご覧ください。
D言語の小物ライブラリ。くだらないユーティリティーツール。