Dart 프로그래밍-도서관

프로그래밍 언어의 라이브러리는 루틴 모음 (프로그래밍 명령 집합)을 나타냅니다. Dart에는 자주 사용되는 루틴을 저장하는 데 유용한 내장 라이브러리 세트가 있습니다. Dart 라이브러리는 클래스, 상수, 함수, typedef, 속성 및 예외의 집합으로 구성됩니다.

라이브러리 가져 오기

가져 오면 라이브러리의 구성 요소를 호출자 코드에서 사용할 수 있습니다. 가져 오기 키워드는 동일한 작업을 수행하는 데 사용됩니다. dart 파일에는 여러 개의 import 문이있을 수 있습니다.

내장 된 Dart 라이브러리 URI는 dart : 체계를 사용하여 라이브러리를 참조합니다. 다른 라이브러리는 파일 시스템 경로 또는 package : 체계를 사용하여 URI를 지정할 수 있습니다. pub 도구와 같은 패키지 관리자가 제공하는 라이브러리는 package : scheme을 사용합니다 .

Dart에서 라이브러리를 가져 오는 구문은 다음과 같습니다.

import 'URI'

다음 코드 스 니펫을 고려하십시오-

import 'dart:io' 
import 'package:lib1/libfile.dart'

라이브러리의 일부만 사용하려는 경우 라이브러리를 선택적으로 가져올 수 있습니다. 동일한 구문은 다음과 같습니다.

import 'package: lib1/lib1.dart' show foo, bar;  
// Import only foo and bar. 

import 'package: mylib/mylib.dart' hide foo;  
// Import all names except foo

일반적으로 사용되는 일부 라이브러리는 다음과 같습니다.

Sr. 아니요 도서관 및 설명
1

dart:io

서버 응용 프로그램에 대한 파일, 소켓, HTTP 및 기타 I / O 지원. 이 라이브러리는 브라우저 기반 애플리케이션에서 작동하지 않습니다. 이 라이브러리는 기본적으로 가져옵니다.

2

dart:core

모든 Dart 프로그램에 내장 된 유형, 컬렉션 및 기타 핵심 기능. 이 라이브러리는 자동으로 가져옵니다.

dart: math

수학 상수 및 함수와 난수 생성기.

4

dart: convert

JSON 및 UTF-8을 포함하여 서로 다른 데이터 표현 간 변환을위한 인코더 및 디코더.

5

dart: typed_data

고정 된 크기의 데이터 (예 : 부호없는 8 바이트 정수)를 효율적으로 처리하는 목록입니다.

예 : 라이브러리 가져 오기 및 사용

다음 예제는 내장 라이브러리를 가져옵니다. dart: math. 스 니펫은sqrt() 기능 math도서관. 이 함수는 전달 된 숫자의 제곱근을 반환합니다.

import 'dart:math'; 
void main() { 
   print("Square root of 36 is: ${sqrt(36)}"); 
}

Output

Square root of 36 is: 6.0

라이브러리의 캡슐화

Dart 스크립트는 식별자 앞에 밑줄 (_)을 붙여 구성 요소를 비공개로 표시 할 수 있습니다. 간단히 말해, Dart 라이브러리는 외부 스크립트에 의한 콘텐츠 액세스를 제한 할 수 있습니다. 이것은 다음과 같이 불립니다.encapsulation. 동일한 구문은 다음과 같습니다.

통사론

_identifier

먼저 개인 함수로 라이브러리를 정의하십시오.

library loggerlib;                            
void _log(msg) {
   print("Log method called in loggerlib msg:$msg");      
}

다음으로 라이브러리 가져 오기

import 'test.dart' as web; 
void main() { 
   web._log("hello from webloggerlib"); 
}

위의 코드는 오류를 발생시킵니다.

Unhandled exception: 
No top-level method 'web._log' declared.  
NoSuchMethodError: method not found: 'web._log' 
Receiver: top-level 
Arguments: [...] 
#0 NoSuchMethodError._throwNew (dart:core-patch/errors_patch.dart:184) 
#1 main (file:///C:/Users/Administrator/WebstormProjects/untitled/Assertion.dart:6:3) 
#2 _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:261) 
#3 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)

사용자 지정 라이브러리 생성

Dart를 사용하면 자신의 코드를 라이브러리로 사용할 수도 있습니다. 사용자 정의 라이브러리를 생성하려면 다음 단계가 필요합니다.

Step 1: Declaring a Library

라이브러리를 명시 적으로 선언하려면 library statement. 라이브러리를 선언하는 구문은 다음과 같습니다.

library library_name  
// library contents go here

Step 2: Associating a Library

두 가지 방법으로 라이브러리를 연결할 수 있습니다.

  • 동일한 디렉토리 내
import 'library_name'
  • 다른 디렉토리에서
import 'dir/library_name'

예 : 사용자 지정 라이브러리

먼저 커스텀 라이브러리를 정의하겠습니다. calculator.dart.

library calculator_lib;  
import 'dart:math'; 

//import statement after the libaray statement  
int add(int firstNumber,int secondNumber){ 
   print("inside add method of Calculator Library ") ; 
   return firstNumber+secondNumber; 
}  
int modulus(int firstNumber,int secondNumber){ 
   print("inside modulus method of Calculator Library ") ; 
   return firstNumber%secondNumber; 
}  
int random(int no){ 
   return new Random().nextInt(no); 
}

다음으로 라이브러리를 가져옵니다.

import 'calculator.dart';  
void main() {
   var num1 = 10; 
   var num2 = 20; 
   var sum = add(num1,num2); 
   var mod = modulus(num1,num2); 
   var r = random(10);  
   
   print("$num1 + $num2 = $sum"); 
   print("$num1 % $num2= $mod"); 
   print("random no $r"); 
}

프로그램은 다음을 생성해야합니다. output

inside add method of Calculator Library  
inside modulus method of Calculator Library  
10 + 20 = 30 
10 % 20= 10 
random no 0

라이브러리 접두사

충돌하는 식별자가있는 두 개의 라이브러리를 가져 오는 경우 하나 또는 두 라이브러리 모두에 접두사를 지정할 수 있습니다. 사용'as'접두사를 지정하기위한 키워드. 동일한 구문은 다음과 같습니다.

통사론

import 'library_uri' as prefix

먼저 라이브러리를 정의하겠습니다. loggerlib.dart.

library loggerlib;  
void log(msg){ 
   print("Log method called in loggerlib msg:$msg");
}

다음으로 다른 라이브러리를 정의합니다. webloggerlib.dart.

library webloggerlib; 
void log(msg){ 
   print("Log method called in webloggerlib msg:$msg"); 
}

마지막으로 접두사가있는 라이브러리를 가져옵니다.

import 'loggerlib.dart'; 
import 'webloggerlib.dart' as web;  

// prefix avoids function name clashes 
void main(){ 
   log("hello from loggerlib"); 
   web.log("hello from webloggerlib"); 
}

다음을 생성합니다. output

Log method called in loggerlib msg:hello from loggerlib 
Log method called in webloggerlib msg:hello from webloggerlib