Глава 2 закончена
This commit is contained in:
parent
42b2af19c0
commit
09dc3df444
18 changed files with 261 additions and 1 deletions
20
02-основные-типы-данных-выражения/src/chapter-2-2-5-1/app.d
Normal file
20
02-основные-типы-данных-выражения/src/chapter-2-2-5-1/app.d
Normal file
|
@ -0,0 +1,20 @@
|
|||
import std.stdio;
|
||||
|
||||
void main()
|
||||
{
|
||||
auto a = r"Строка с \ и " ~ `"` ~ " внутри.";
|
||||
auto b = r"c:\games\Sudoku.exe";
|
||||
auto c = r"ab\n";
|
||||
|
||||
auto d = q"[Какая-то строка с "кавычками", `обратными апострофами` и [квадратными скобками]]";
|
||||
auto e = q"/Просто строка/";
|
||||
auto f = q"EOS
|
||||
This
|
||||
is a multi-line
|
||||
heredoc string
|
||||
EOS";
|
||||
|
||||
auto g = q{ foo(q{hello}); };
|
||||
// auto h = q{ № };
|
||||
// auto i = q{ __EOF__ };
|
||||
}
|
19
02-основные-типы-данных-выражения/src/chapter-2-2-5-2/app.d
Normal file
19
02-основные-типы-данных-выражения/src/chapter-2-2-5-2/app.d
Normal file
|
@ -0,0 +1,19 @@
|
|||
import std.stdio;
|
||||
|
||||
void main()
|
||||
{
|
||||
writeln(typeid(typeof("Hello, world!"))); // immutable(char)[]
|
||||
|
||||
immutable(char)[] str = "One";
|
||||
str = "Two";
|
||||
writeln(typeid(typeof(str))); // immutable(char)[]
|
||||
|
||||
immutable(char)[3] a = "Hi!";
|
||||
immutable(char)[] b = a;
|
||||
writeln(a.length, " ", b.length); // 3 3
|
||||
|
||||
wstring x = "Здравствуй, широкий мир!";
|
||||
writeln(typeid(typeof(x))); // immutable(wchar)[]
|
||||
dstring y = "Здравствуй, еще более широкий мир!";
|
||||
writeln(typeid(typeof(y))); // immutable(dchar)[]
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
import std.stdio;
|
||||
|
||||
void main()
|
||||
{
|
||||
auto crlf = "\r\n";
|
||||
auto a = "В этой строке есть \"двойные кавычки\", а также
|
||||
перевод строки, даже два" ~ "\n";
|
||||
}
|
21
02-основные-типы-данных-выражения/src/chapter-2-2-6/app.d
Normal file
21
02-основные-типы-данных-выражения/src/chapter-2-2-6/app.d
Normal file
|
@ -0,0 +1,21 @@
|
|||
import std.stdio;
|
||||
|
||||
void main()
|
||||
{
|
||||
auto somePrimes = [ 2u, 3, 5, 7, 11, 13 ];
|
||||
writeln(somePrimes);
|
||||
auto someDoubles = [ 1.5, 3, 4.5 ];
|
||||
writeln(someDoubles);
|
||||
|
||||
auto constants = [ 2.71, 3.14, 6.023e22 ];
|
||||
writeln(constants);
|
||||
constants[0] = 2.21953167;
|
||||
writeln(constants);
|
||||
auto salutations = [ "привет", "здравствуйте", "здорово" ];
|
||||
writeln(salutations);
|
||||
salutations[2] = "Да здравствует Цезарь";
|
||||
writeln(salutations);
|
||||
|
||||
auto famousNamedConstants = [ "пи" : 3.14, "e" : 2.71, "константа дивана" : 2.22 ];
|
||||
writeln(famousNamedConstants);
|
||||
}
|
20
02-основные-типы-данных-выражения/src/chapter-2-2-7/app.d
Normal file
20
02-основные-типы-данных-выражения/src/chapter-2-2-7/app.d
Normal file
|
@ -0,0 +1,20 @@
|
|||
import std.stdio;
|
||||
|
||||
void main()
|
||||
{
|
||||
auto f = function double(int x) { return x / 10.; };
|
||||
auto a = f(5);
|
||||
assert(a == 0.5);
|
||||
|
||||
double function(int) e = function double(int x) { return x / 10.; };
|
||||
auto b = e(5);
|
||||
assert(b == 0.5);
|
||||
|
||||
int h = 2;
|
||||
auto g = delegate double(int x) { return h * x / 10.; };
|
||||
auto i = g(5);
|
||||
assert(i == 1);
|
||||
h = 3;
|
||||
auto j = g(5);
|
||||
assert(j == 1.5);
|
||||
}
|
15
02-основные-типы-данных-выражения/src/chapter-2-3-10/app.d
Normal file
15
02-основные-типы-данных-выражения/src/chapter-2-3-10/app.d
Normal file
|
@ -0,0 +1,15 @@
|
|||
import std.stdio;
|
||||
|
||||
void main()
|
||||
{
|
||||
int a = -1; // То есть 0xFFFF_FFFF
|
||||
int b = a << 1;
|
||||
assert(b == -2); // 0xFFFF_FFFE
|
||||
writeln("a = ", a, "; b = ", b, ';');
|
||||
int c = a >> 1;
|
||||
assert(c == -1); // 0xFFFF_FFFF
|
||||
writeln("a = ", a, "; c = ", c, ';');
|
||||
int d = a >>> 1;
|
||||
assert(d == +2147483647); // 0x7FFF_FFFF
|
||||
writeln("a = ", a, "; d = ", d, ';');
|
||||
}
|
20
02-основные-типы-данных-выражения/src/chapter-2-3-11/app.d
Normal file
20
02-основные-типы-данных-выражения/src/chapter-2-3-11/app.d
Normal file
|
@ -0,0 +1,20 @@
|
|||
import std.stdio;
|
||||
|
||||
void main()
|
||||
{
|
||||
double[string] table = [
|
||||
"one": 1.0,
|
||||
"two": 2.0
|
||||
];
|
||||
writeln(table);
|
||||
auto p = "three" in table;
|
||||
if (p)
|
||||
{
|
||||
++*p;
|
||||
}
|
||||
else
|
||||
{
|
||||
table["three"] = 3.0;
|
||||
}
|
||||
writeln(table);
|
||||
}
|
10
02-основные-типы-данных-выражения/src/chapter-2-3-12-1/app.d
Normal file
10
02-основные-типы-данных-выражения/src/chapter-2-3-12-1/app.d
Normal file
|
@ -0,0 +1,10 @@
|
|||
import std.stdio;
|
||||
|
||||
void main()
|
||||
{
|
||||
auto a = "какая-то строка";
|
||||
auto b = a; // a и b ссылаются на один и тот же массив
|
||||
a is b && writeln("Ага, это действительно одно и то же.");
|
||||
auto c = "какая-то (другая) строка";
|
||||
a is c || writeln("Действительно... не одно и то же.");
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
import std.stdio;
|
||||
|
||||
void main()
|
||||
{
|
||||
string line;
|
||||
line == "#\n" && writeln("Успешно принята строка #. ");
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
import std.stdio;
|
||||
|
||||
void main()
|
||||
{
|
||||
string line;
|
||||
line.length > 0 || line = "\n";
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
import std.stdio;
|
||||
|
||||
void main()
|
||||
{
|
||||
int x = 5, y = 5;
|
||||
bool which = true;
|
||||
(which ? x : y) += 5;
|
||||
assert(x == 10);
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
import std.stdio;
|
||||
|
||||
void main()
|
||||
{
|
||||
int a = 5;
|
||||
int b = 10;
|
||||
int c = (a = b, b = 7, 8);
|
||||
}
|
22
02-основные-типы-данных-выражения/src/chapter-2-3-4-3/app.d
Normal file
22
02-основные-типы-данных-выражения/src/chapter-2-3-4-3/app.d
Normal file
|
@ -0,0 +1,22 @@
|
|||
import std.stdio;
|
||||
|
||||
void main()
|
||||
{
|
||||
bool
|
||||
a = is(int[]), // True, int[] – допустимый тип
|
||||
b = is(int[5]), // True, int[5] – также допустимый тип
|
||||
c = is(int[-3]), // False, размер массива задан неверно
|
||||
d = is(Blah); // False (если тип с именем Blah не был определен)
|
||||
|
||||
writeln("a = ", a, "; b = ", b, "; c = ", c, "; d = ", d, ';');
|
||||
|
||||
alias uint UInt;
|
||||
assert(is(uint == UInt));
|
||||
|
||||
a = is(int[5] : int[]), // true, int[5] может быть преобразован к int[]
|
||||
b = is(int[5] == int[]), // false; это разные типы
|
||||
c = is(uint : long), // true
|
||||
d = is(ulong : long); // true
|
||||
|
||||
writeln("a = ", a, "; b = ", b, "; c = ", c, "; d = ", d, ';');
|
||||
}
|
10
02-основные-типы-данных-выражения/src/chapter-2-3-5-5/app.d
Normal file
10
02-основные-типы-данных-выражения/src/chapter-2-3-5-5/app.d
Normal file
|
@ -0,0 +1,10 @@
|
|||
import std.stdio;
|
||||
|
||||
void main()
|
||||
{
|
||||
int[] a = new int[5]; // Создать массив из пяти целых чисел
|
||||
int[] b = a[3 .. 5]; // b ссылается на два последних элемента a
|
||||
b[0] = 1;
|
||||
b[1] = 3;
|
||||
assert(a == [ 0, 0, 0, 1, 3 ]); // a был изменен
|
||||
}
|
16
02-основные-типы-данных-выражения/src/chapter-2-3-6-1/app.d
Normal file
16
02-основные-типы-данных-выражения/src/chapter-2-3-6-1/app.d
Normal file
|
@ -0,0 +1,16 @@
|
|||
import std.stdio;
|
||||
|
||||
void main()
|
||||
{
|
||||
auto arr1 = new int[4];
|
||||
assert(arr1.length == 4);
|
||||
assert(arr1 == [ 0, 0, 0, 0 ]); // Инициализирован по умолчанию
|
||||
|
||||
auto arr2 = new int[](4);
|
||||
assert(arr2.length == 4);
|
||||
assert(arr2 == [ 0, 0, 0, 0 ]); // Инициализирован по умолчанию
|
||||
|
||||
auto matrix = new int[][](4, 8);
|
||||
assert(matrix.length == 4);
|
||||
assert(matrix[0].length == 8);
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
import std.stdio;
|
||||
|
||||
void main()
|
||||
{
|
||||
auto a = 2 ^^ 3;
|
||||
writeln(a); // 8
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
import std.stdio;
|
||||
|
||||
void main()
|
||||
{
|
||||
auto a = 2 ^^ 3;
|
||||
writeln(a); // 8
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue