問題一覧に戻る
中級関数
問題64: ライブラリの使用
Solidityで'using for'ディレクティブを使用してライブラリを使用する方法を学習します - ライブラリ関数で型を拡張します。ライブラリは一度デプロイされて再利用され、デプロイガスを節約します。'using LibraryName for TypeName'構文はライブラリ関数を型にアタッチし、メソッドのような構文を可能にします。このパターンは安全な数学演算、文字列操作、ネイティブ型の拡張に不可欠です。ライブラリはコードの再利用と標準化を促進します。ライブラリ使用の理解はコミュニティでテストされたコードの活用とDeFiプロトコルでのガス効率的なコントラクトの構築に重要です。
pragma solidity ^0.8.0;
library SafeMath {
function add(uint256 a, uint256 b)
internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "Overflow");
return c;
}
}
contract UsingLibrary {
// ライブラリを型にアタッチ
SafeMath uint256;
// ライブラリ関数をメソッドとして使用
function safeAdd(uint256 a, uint256 b)
public pure returns (uint256) {
return a.(b);
}
}