Dart

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Dart
Dart
Dartのロゴ
パラダイム マルチパラダイムプログラミング、オブジェクト指向プログラミング関数型プログラミング命令型プログラミングリフレクション ウィキデータを編集
登場時期 2011年10月10日 (12年前) (2011-10-10)
開発者 Google ウィキデータを編集
最新リリース 3.4.2 / 2024年5月29日[1]
型付け ver. 1.x:(動的または静的
ver. 2.x: 型推論強い静的型付け)
主な処理系 Dart VM、dart2native、dart2js、Flutter
影響を受けた言語 Strongtalk、JavaJavaScriptSmalltalkErlangC Sharp ウィキデータを編集
プラットフォーム クロスプラットフォーム ウィキデータを編集
ライセンス BSDライセンス ウィキデータを編集
ウェブサイト dart.dev ウィキデータを編集
拡張子 dart ウィキデータを編集
テンプレートを表示

DartDash[2][3]Google使

DartC[4]DartJavaScriptMixinreification[5]

20111010 - 12 GOTO[6][7]JavaScript

[]


DartJavaScript[8][9]GoogleBrightlyDartGoogleDartDartECMAScript3ClosureDart[10]GoogleDartChrome2011[9]

2015Chrome2017DartGoogleTypeScriptGoogle[11]

20182Dart 2[12]Dart 2.6dart2native

20235Dart 3[13]null(Sound null safety)

[]


Dart4

Web

DartJavaScriptsource-to-sourceDart[14]Dartdart2js使JavaScriptJavaScriptDartDartJavaScriptJavaScript使[15]




Dart SDKDart VMDartCLIDart SDKDartDart VMSDKdart2jspubDart[16]


Ahead-of-time

DartAOT-DartSDKFlutterAOTDart[17]




Dart 2.6dart2native 使Dart2.6iOSAndroidFlutter[18]

isolate[]


concurrencyDartisolate使[19]ErlangprocessDart1isolatemain isolate使Dart 2DartisolateWeb Worker使[20]

[]


Dart VM[21]



Dart




DartDart VM




Dartisolate使isolate

[]


GoogleAndroidiOSFlutter[22]FlutterSDKDart[23]FlutterFirebase[24]SDK

JavaScript[]


Dart SDKDartJavaScriptdartdevcdart2jsJavaScript[25]

DartJavaScriptdartc2DartJavaScriptFrogFrogDart3DartJavaScriptdart2jsdart2jsDartDart

2013328Dartdart2js使JavaScriptDart稿[26]DeltaBlueChromeV8 JavaScriptJavaScript[27]

[]


Hello world[28]
main() {
  print('Hello World!');
}

フィボナッチ数を計算する関数の例

int fib(int n) {
  if (n <= 1) return n;
  return fib(n - 1) + fib(n - 2);
}
main() {
  print('fib(20) = ${fib(20)}');
}

単純なクラスの例

// sqrt関数を呼び出すためにmathライブラリをインポート
import 'dart:math' as math;

// Pointクラスを定義
class Point {

   // 2つのインスタンス変数を定義
  final num x, y;

  // コンストラクター関数
  Point(this.x, this.y);

  // 初期化リストを含む名前付きコンストラクター関数
  Point.origin()
      : x = 0,
        y = 0;

  //メソッド定義の例
  num distanceTo(Point other) {
    var dx = x - other.x;
    var dy = y - other.y;
    return math.sqrt(dx * dx + dy * dy);
  }

  // 演算子のオーバーローディングの例
  Point operator +(Point other) => Point(x + other.x, y + other.y);
}

// すべてのDart言語のプログラムは main()関数から始まる
void main() {
  // point オブジェクトの生成.
  var p1 = Point(10, 10);
  var p2 = Point.origin();
  var distance = p1.distanceTo(p2);
  print(distance);
}

関連項目[編集]

脚注[編集]



(一)^ URL: https://github.com/dart-lang/sdk/releases/tag/3.4.2, : 202465, : Release 3.4.2, : 2024529

(二)^ Dart overview. dart.dev. 202146

(三)^ Dart programming language. dart.dev. 202146 A programming language optimized for building user interfaces with features such as the spread operator for expanding collections, and collection if for customizing UI for each platform

(四)^ A Tour of the Dart Language. dart.dev. 201889

(五)^ The Dart type system. dart.dev. 2021829

(六)^ http://gotocon.com/aarhus-2011/

(七)^ Presentation: "Opening Keynote: Dart, a new programming language for structured web programming" - GOTO  20111010Dart

(八)^ "Future of Javascript" doc from our internal "JavaScript Summit" last week - 

(九)^ abGoogle Operating System: Dash, Google's Alternative to JavaScript

(十)^ Google Dart to ultimately ... replace JavaScript

(11)^ TypeScriptDartGoogle.  Publickey (2017412). 2017415

(12)^ GoogleDart 2DartiOS/AndroidFlutterWeb.  Publickey (201835). 201855

(13)^ "Null"Dart 3.   (2023512). 2024511

(14)^ Why?, Dart lang (FAQ), http://www.dartlang.org/support/faq.html#why-dart, "We designed Dart to be easy to write development tools for, well-suited to modern app development, and capable of high-performance implementations." 

(15)^ JavaScript as a compilation target: Making it fast.  Dartlang.org. 2016722013818

(16)^ An Introduction to the dart:io Library. Dartlang.org. 2013721

(17)^ Flutter FAQ. flutter.io. 2016102

(18)^ Announcing Dart 2.6 with dart2native: Compile Dart to self-contained, native executables. 2019126

(19)^ The Essence of Google Dart: Building Applications, Snapshots, Isolates (). InfoQ. 2021829

(20)^ Moore, Kevin (2018223). Dart2 Breaking Change: Removing web support for dart:mirrors and dart:isolate. Google Groups. 2021916

(21)^ The Essence of Google Dart: Building Applications, Snapshots, Isolates (). InfoQ. 2021829

(22)^ Flutter - Beautiful native apps in record time. flutter.dev. 2021919

(23)^ FAQ (). flutter.dev. 2021829

(24)^ Firebase (). flutter.dev. 2021829

(25)^ Deployment. angulardart.dev. 2021919

(26)^ Ladd, Seth (2013328). Dart News & Updates: Why dart2js produces faster JavaScript code from Dart. News.dartlang.org.. 2013721

(27)^ Dart Performance. Dartlang.org.. 2017132013721

(28)^ Another Hello World example hosted in Github

外部リンク[編集]