Skip to content

Instantly share code, notes, and snippets.

@t-cool
Last active October 19, 2021 05:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save t-cool/118ec6e177587755644788fc614fafc7 to your computer and use it in GitHub Desktop.
Save t-cool/118ec6e177587755644788fc614fafc7 to your computer and use it in GitHub Desktop.
import 'dart:math';
void main() {
print('--データ型--');
num n1 = pow(2, 63);
int n2 = 2;
double n3 = 1.23;
bool b1 = true;
String s1 = "string";
List l1 = [1,2,3];
Map m1 = {"key": "value"};
print("$n1, $n2, $n3, $b1, $s1, ${l1[2]}, $m1");
// ${l1[2]} を $l1[2] とはできない
print('\n--関数定義--');
String hello(String name){
return "Hello $name";
}
print(
hello("Hiroki")
);
// => Hello Hiroki
print('\n--配列--');
// 配列
var names = ["Hiroki", "Goro", "Hanako"];
print(names.length); // 3
print(names.first); // Hiroki
print(names.last); // Hanako
print(names.reversed); // (Hanako, Goro, Hiroki)
print(names.hashCode); // 3213526
print(names.map((name)=>"Hey $name")); // (Hey Hiroki, Hey Goro, Hey Hanako)
print(names.reduce((a,b)=>"$a & $b")); // Hiroki & Goro & Hanako
print(names); // [Hiroki, Goro, Hanako]
// スプレッド
var arr1 = [1,2,3];
var arr2 = [4,5,6];
print([...arr1,...arr2]);
print('\n--集合--');
var memberA = {"Hiroki", "Goro", "Taro", "Hanako"};
var memberB = {"Hiroki", "Jiro", "Taro", "Hanayo"};
memberA.add("Kanako");
print(memberA.difference(memberB)); // {Goro, Hanako, Kanako}
print(memberB.difference(memberA)); // {Jiro, Hanayo}
print(memberA.intersection(memberB)); // {Hiroki, Taro}
print('\n--Map--');
var students = [
{"id":1, "name": "Hiroki"},
{"id":2, "name": "Goro"},
{"id":3, "name": "Kayo"},
];
print(students[0]["name"]); // Hiroki
// where クエリ
print(students.where((student)=>student["name"]=="Goro")); // ({id: 2, name: Goro});
print('\n--クラス--');
var kclass = Klass("Hiroki");
print(kclass.sayHello());
print('\n--シングルトン--');
var store1 = SingletonStore();
store1.set('name', 'Dart Taro');
store1.set('age', 30);
print(store1.get('name'));
print(store1.get('age'));
print('---');
// もしインスタンスを2つ作成したとしても、実体は一つ。
var store2 = SingletonStore();
print(store2.get('name'));
print(store2.get('age'));
}
class Klass{
final id = 1986;
String name = "Bob";
// コンストラクタ
Klass(this.name); // this.name = name の意味
String sayHello(){
// インスタンス変数の評価は $ を使う必要あり。
return "Hello, $name"; // this.name の意味
}
}
class SingletonStore {
static final Map<String, dynamic> _items = <String, dynamic>{};
static final SingletonStore _cache = SingletonStore._internal();
SingletonStore._internal();
// コンストラクタに factory をつける
factory SingletonStore() {
return _cache;
}
set(String key, dynamic data) => _items[key] = data;
get(String key) => _items[key];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment