void main(){ bool isTrue = true; bool isFalse = false; print("Hello".isEmpty); } 复制代码
Number
void main(){ num a = 10; a = 12.5; int b = 20; // b = 20.5; double c = 10.5; // c = 30; print(b + c); print(b - c); print(b * c); print(b / c); print(b ~/ c); print(b % c); print(0.0 / 0.0); print(b.isEven); print(b.isOdd); int d = 11; print(d.isEven); print(d.isOdd); int e = -100; print(e.abs()); double f = 10.5; print(f.round()); print(f.floor()); print(f.ceil()); print(f.toInt()); print(d.toDouble()); } 复制代码
String
void main(){ String str1 = 'Hello';//"" String str2 = '''Hello Dart''';//""" print(str2); // String str3 = 'Hello \n Dart'; String str3 = r'Hello \n Dart'; print(str3); String str4 = "This is my favorite language"; print(str4 + "New"); print(str4 * 5); print(str3 == str4); print(str4[1]); int a = 1; int b = 2; print("a + b = ${a + b}"); print("a = $a"); print(str4.length); print(str4.isEmpty); print(str4.contains("This")); print(str4.substring(0,3)); print(str4.startsWith("a")); print(str4.endsWith("ge")); var list = str4.split(" "); print(list); print(str4.replaceAll("This", "That")); } 复制代码
Const
void main(){ var a; print(a); a = 10; print(a); a = 'Hello Dart'; print(a); var b = 20; print(b); final c = 30; // c = 50; const d = 20; // d = 50; } 复制代码
List
void main(){ var list1 = [1,2,3,"Dart",true]; print(list1); print(list1[2]); list1[1] = "Hello"; print(list1); var list2 = const [1,2,3]; //不可变 // list2[0] = 5; var list3 = new List(); var list = ["hello","dart"]; print(list.length); list.add("New"); print(list); list.insert(1, "Java"); print(list); list.remove("Java"); print(list); // list.clear(); // print(list); print(list.indexOf("dart1")); list.sort(); print(list); print(list.sublist(1)); list.forEach(print); } 复制代码
Map
void main(){ var map1 = {"first":"Dart",1:true,true:"2"}; print(map1); print(map1["first"]); print(map1[true]); map1[1] = false; print(map1); var map2 = const {1:"Dart",2:"Java"};//不可变 // map2[1] = "Python"; var map3 = new Map(); var map = {"first":"Dart","second":"Java","third":"Python"}; print(map.length); // map.isEmpty; print(map.keys); print(map.values); print(map.containsKey("first")); print(map.containsValue("C")); map.remove("third"); print(map); map.forEach(f); var list = ["1","2","3"]; print(list.asMap()); } void f(key,value){ print("key=$key,value=$value"); } 复制代码
dynamic
void main(){ var a; a = 10; a = "Dart"; dynamic b = 20; b = "JavaScript"; var list = new List<dynamic>(); list.add(1); list.add("hello"); list.add(true); print(list); } 复制代码
2.运算符
operator_arithmetic
void main(){ int a = 10; int b = 2; print(a + b); print(a - b); print(a * b); print(a / b); print(a ~/ b); print(a % b); print(a++);//11 print(++a);//12 print(a--);//11 print(--a);//10 } 复制代码
operator_asignment
void main(){ int a = 10; int b = 5; b ??= 10; print(b); a += 2; print(a); a -= b; print(a); a *= b; // a /= b; a ~/= b; a %= b; } 复制代码
operator_conditional
void main(){ int gender = 1; String str = gender == 0 ? "Male=$gender" :"Female=$gender"; print(str); String a = "Dart"; String b = "Java"; String c = a ?? b; print(c); } 复制代码
operator_logical
void main(){ bool isTrue = true; print(!isTrue); bool isFalse = false; print(isTrue && isFalse); print(isTrue || isFalse); String str = ""; print(!str.isEmpty); } 复制代码
operator_relational
void main(){ int a = 5; int b = 3; print(a == b); print(a !=b ); print(a > b); print(a < b); print(a >= b); print(a <= b); String strA = "123"; String strB = "123"; print(strA == strB); } 复制代码
3.控制语句
break_and_continue
void main(){ var list = [1,2,3]; for(var item in list){ if(item == 2) { // break; continue; } print(item); } print("-----"); var list2 = [4,5,6]; for(var item1 in list){ if(item1 == 2){ break; } for(var item2 in list2){ if(item2 == 5){ break; } print(item2); } } } 复制代码
stmt_assert
void main(){ String str; assert(str != null); } 复制代码
stmt_for
void main(){ var list = [1,2,3,4,5]; for(var index = 0;index < list.length;index++){ print(list[index]); } print("---------"); for(var item in list){ print(item); } } 复制代码
stmt_if
void main(){ int score = 100; if(score >= 90){ if(score == 100){ print("完美"); }else { print("优秀"); } }else if(score > 60){ print("良好"); }else if(score == 60){ print("及格"); }else { print("不及格"); } } 复制代码
stmt_switch
void main(){ String language = "Java"; switch(language){ case "Dart": print("Dart is my favorite"); break; case "Java": print("Java is my favorite"); break; case "Python": print("Python is my favorite"); break; default: print("None"); } switch(language){ Test: case "Dart": print("Dart is my favorite"); break; case "Java": print("Java is my favorite"); continue Test; // break; case "Python": print("Python is my favorite"); break; default: print("None"); } } 复制代码
stmt_while
void main(){ int count = 0; while(count < 5){ print(count++); } print("---$count----"); do{ print(count--); }while(count > 0 && count < 5); } 复制代码
4.方法
function_declaration
void main(List args){ print(args); print(getPerson("张三", 18)); print(printPerson("李四", 20)); } int gender = 1; getPerson(name,age) => gender == 1 ? "name=$name,age=$age":"Test"; printPerson(name,age){ print("name=$name,age=$age"); } 复制代码
function_optional_param可选参数
void main(){ printPerson("李四"); printPerson("李四",age: 20); printPerson("李四",age: 20,gender: "Male"); printPerson("李四",gender: "Male"); printPerson2("张三"); printPerson2("张三",18); printPerson2("张三",18,"Female"); } printPerson(String name,{int age,String gender}){ print("name=$name,age=$age,gender=$gender"); } printPerson2(String name,[int age,String gender]){ print("name=$name,age=$age,gender=$gender"); } 复制代码
function_default_param默认参数
void main(){ printPerson("李四"); printPerson("李四",age: 20); printPerson("李四",gender: "Male"); } printPerson(String name,{int age = 30,String gender = "Female"}){ print("name=$name,age=$age,gender=$gender"); } 复制代码
function_object方法对象
void main(){ Function func = printHello; func(); var list = [1,2,3,4]; list.forEach(print); var list2 = ["h","e","l","l","o"]; print(listTimes(list2, times)); } void printHello(){ print("Hello"); } List listTimes(List list ,String times(str)){ for(var index = 0;index < list.length;index++){ list[index] = times(list[index]); } return list; } String times(str){ return str*3; } 复制代码
function_anonymous匿名方法
void main(){ var func = (str){ print("Hello---$str"); }; func(30); // ((){ // print("Test"); // })(); var list2 = ["h","e","l","l","o"]; var result = listTimes(list2, (str){ return str * 3;}); print(result); print(listTimes2(list2)); } List listTimes(List list ,String times(str)){ for(var index = 0;index < list.length;index++){ list[index] = times(list[index]); } return list; } List listTimes2(List list ){ var func = (str){ return str * 3;}; for(var index = 0;index < list.length;index++){ list[index] = func(list[index]); } return list; } 复制代码
function_closure闭包
void main(){ var func = a(); func(); func(); func(); func(); } a(){ int count = 0; // printCount(){ // print(count++); // } return (){ print(count++); }; } 复制代码
5.面向对象
class_and_object类与对象
import 'person.dart'; void main() { var person = new Person(); person.name = "Tom"; person.age = 20; print(person.name); print(person.address); person.work(); } 复制代码
//person.dart class Person { String name; int age; final String address = ""; void work(){ print("Name is $name,Age is $age,He is working..."); } } 复制代码
calculated_property计算属性
void main() { var rect = new Rectangle(); rect.height = 20; rect.width = 10; print(rect.area); rect.area = 200; print(rect.width); } class Rectangle{ num width,height; num get area => width * height; set area(value){ width = value / 20; } } 复制代码
constructors构造方法
void main() { var person = new Person("Tom",20,"Male"); new Person.withName("John"); new Person.withAge(20); } class Person{ String name; int age; final String gender; Person(this.name,this.age,this.gender); Person.withName(String name){ this.name = name; } Person.withAge(this.age); void work(){ print("Work..."); } } 复制代码
const_constructors常量构造方法
void main() { const person = const Person("Tom",20,"Male"); person.work(); } class Person{ final String name; final int age; final String gender; const Person(this.name,this.age,this.gender); void work(){ print("Work..."); } } 复制代码
factory_constructors工厂构造方法
class Logger { final String name; static final Map<String, Logger> _cache = <String, Logger>{}; factory Logger(String name) { if (_cache.containsKey(name)) { return _cache[name]; } else { final logger = Logger._internal(name); _cache[name] = logger; return logger; } } Logger._internal(this.name); void log(String msg) { print(msg); } } 复制代码
init_list初始化列表
void main() { var person = new Person("Tom", 20, "Male"); } class Person{ String name; int age; final String gender; Person(this.name,this.age,this.gender); Person.withMap(Map map): name = map["name"],gender = map["gender"]{ age = map["age"]; } void work(){ print("Work..."); } } 复制代码
static_member静态成员
void main() { var page = new Page(); Page.scrollDown(); } class Page{ static const int maxPage = 10; static int currentPage = 1; //下滑 static void scrollDown(){ currentPage = 1; print("ScrollDown..."); } //上滑 void scrollUp(){ currentPage++; print("scrollUp..."); } } 复制代码
object_operator对象操作符
void main() { // Person person = new Person(); // person?.name; // var person; // person = ""; // person = new Person(); // (person as Person).work(); // if (person is Person){ // person.work(); // } new Person() ..name = "Tom" ..age = 20 ..work(); } class Person{ String name; int age; void work(){ print("Work...$name,$age"); } } 复制代码
object_call对象call
void main() { var person = new Person(); print(person("Test",30)); } class Person{ String name; int age; // void work(){ // print("Name is $name,Age is $age"); // } String call(String name,int age){ return "Name is $name,Age is $age"; } } 复制代码
6.面向对象扩展
继承
import 'person.dart'; void main() { // var student = new Student(); // student.study(); // // student.name = "Tom"; // student.age = 16; // // print(student.isAdult); // // student.run(); Person person = new Student(); person.name = "Tom"; person.age = 18; if(person is Student){ person.study(); } print(person); } class Student extends Person{ void study(){ print("Student study..."); } @override bool get isAdult => age > 15; @override void run() { print("Student run..."); } } 复制代码
class Person { String name; int age; String _birthday; bool get isAdult => age > 18; void run(){ print("Person run..."); } @override String toString() { return "Name is $name,Age is $age"; } } 复制代码
继承中的构造方法
void main() { var student = new Student("Tom","Male"); print(student.name); } class Person{ String name; Person(this.name); Person.withName(this.name); } class Student extends Person{ int age; final String gender; Student(String name,String g) : gender = g, super.withName(name); } 复制代码
抽象类
void main() { var person = new Student(); person.run(); } abstract class Person{ void run(); } class Student extends Person{ @override void run() { print("run..."); } } 复制代码
接口
void main() { var student = new Student(); student.run(); } //class Person{ // String name; // // int get age => 18; // // void run(){ // print("Person run..."); // } //} abstract class Person{ void run(); } class Student implements Person{ @override void run() { print("Student run..."); } } 复制代码
mixins
void main() { // var d = new D(); // d.a(); } //class A{ // void a(){ // print("A.a()..."); // } //} // //class B{ // // void a(){ // print("B.a()..."); // } // // void b(){ // print("B.b()..."); // } //} // //class Test{} // // //class C{ // // void a(){ // print("C.a()..."); // } // // void b(){ // print("C.b()..."); // } // // void c(){ // print("C.c()..."); // } //} // //class D extends A with C,B{ // //} abstract class Engine{ void work(); } class OilEngine implements Engine{ @override void work() { print("Work with oil..."); } } class ElectricEngine implements Engine{ @override void work() { print("Work with Electric..."); } } class Tyre{ String name; void run(){} } class Car = Tyre with ElectricEngine; class Bus = Tyre with OilEngine; 复制代码
操作符覆写
void main() { var person1 = new Person(20); var person2 = new Person(20); print(person1 > person2); person1.age; print(person1['age']); print(person1 == person2); } class Person{ int age; Person(this.age); bool operator >(Person person){ return this.age > person.age; } int operator [](String str){ if("age" == str){ return age; } return 0; } @override bool operator ==(Object other) => identical(this, other) || other is Person && runtimeType == other.runtimeType && age == other.age; @override int get hashCode => age.hashCode; } 复制代码
7.枚举
enum
void main() { var currentSeason = Season.winter; print(currentSeason.index); switch(currentSeason){ case Season.spring: print("1-3月"); break; case Season.summer: print("4-6月"); break; case Season.autumn: print("7-9月"); break; case Season.winter: print("10-12月"); break; } } enum Season{ spring, summer, autumn, winter } 复制代码
8.泛型
generics
void main() { var list = new List<int>(); list.add(1); // var utils = new Utils<int>(); // utils.put(1); var utils = new Utils(); utils.put<int>(1); } class Utils{ void put<T>(T element){ print(element); } // void putString(String element){ // this.elementStr = element; // } } 复制代码
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 重走Java编程路:Jsp语言入门学习
- 入门编程,一定要从C语言开始吗?
- C、C++、Java到Python,编程入门学习什么语言好?
- 逻辑式编程语言极简实现(使用C#) - 1. 逻辑式编程语言介绍
- 那些主流编程语言的知识:C 语言(一)
- 那些主流编程语言的知识:C 语言(一)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web前端黑客技术揭秘
钟晨鸣、徐少培 / 电子工业出版社 / 2013-1 / 59.00元
Web前端的黑客攻防技术是一门非常新颖且有趣的黑客技术,主要包含Web前端安全的跨站脚本(XSS)、跨站请求伪造(CSRF)、界面操作劫持这三大类,涉及的知识点涵盖信任与信任关系、Cookie安全、Flash安全、DOM渲染、字符集、跨域、原生态攻击、高级钓鱼、蠕虫思想等,这些都是研究前端安全的人必备的知识点。本书作者深入剖析了许多经典的攻防技巧,并给出了许多独到的安全见解。 本书适合前端工......一起来看看 《Web前端黑客技术揭秘》 这本书的介绍吧!