1.11 Interface 學校圖書館系統

閱讀時間約 3 分鐘
interface

interface

  • interface的主要作用是定義合約的函數規範,但不包含具體的實現。它提供了一種清晰的方式來描述合約之間的互動方式,從而使得不同的合約可以進行互操作性。

學校圖書館系統, 包括兩個主要的合約:Library合約和Student合約。

  1. Library合約:這個合約負責管理圖書館的書籍,包括書籍的借閱、歸還和查詢功能。
  2. Student合約:這個合約代表了學生,學生可以借閱圖書並查詢圖書館的書籍。
  • 我們有兩個合約:LibraryContractStudentContract,分別實現了 LibraryStudent 這兩個interface。這樣,其他合約可以通過interface與這兩個合約進行互動,從而實現合約之間的互操作性。
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

// 圖書館合約的interface
interface Library {
function borrowBook(uint256 bookId) external returns (bool);
function returnBook(uint256 bookId) external returns (bool);
function getBookInfo(uint256 bookId) external view returns (string memory);
}

// 學生合約的interface
interface Student {
function borrowBook(uint256 bookId) external returns (bool);
function returnBook(uint256 bookId) external returns (bool);
function searchBook(uint256 bookId) external view returns (string memory);
}

// 實現Library接口的合約
contract LibraryContract is Library {
function borrowBook(uint256 bookId) external returns (bool) {
// 實現借閱書籍功能的代碼
}

function returnBook(uint256 bookId) external returns (bool) {
// 實現歸還書籍功能的代碼
}

function getBookInfo(uint256 bookId) external view returns (string memory) {
// 實現查詢書籍信息功能的代碼
}
}

// 實現Student接口的合約
contract StudentContract is Student {
function borrowBook(uint256 bookId) external returns (bool) {
// 實現學生借閱書籍功能的代碼
}

function returnBook(uint256 bookId) external returns (bool) {
// 實現學生歸還書籍功能的代碼
}

function searchBook(uint256 bookId) external view returns (string memory) {
// 實現學生查詢書籍信息功能的代碼
}
}
    5會員
    91Content count
    尋大神腳印, 亦步亦趨。
    留言0
    查看全部
    發表第一個留言支持創作者!
    ForLoop // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract ArtAuction { mapping(uint => uint) public artworks; uint public con
    // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract GiftShop { mapping(address => uint) public loyaltyPoints; mapping(string =>
    // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract TuitionPayment { address public school; uint public tuitionFee; mapping(
    // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract SchoolGreetings { address public principal; event GreetingReceived(string g
    一個智能合約,名為 UniformShop,它用於販售學校制服。 我們希望合約在收到以太幣後自動處理購買制服的操作。 UniformShop 合約定義了一個 fallback 函式,用於接收以太幣並購買制服。 當有人向合約地址轉帳時,如果轉帳金額足夠支付制服的價格,則 fallback 函式將
    try-catch 語句用於處理外部函數調用或合約創建過程中可能發生的錯誤 以下是一個使用小朋友睡著作為例子的簡單程式碼 // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract Child { bool publ
    ForLoop // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract ArtAuction { mapping(uint => uint) public artworks; uint public con
    // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract GiftShop { mapping(address => uint) public loyaltyPoints; mapping(string =>
    // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract TuitionPayment { address public school; uint public tuitionFee; mapping(
    // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract SchoolGreetings { address public principal; event GreetingReceived(string g
    一個智能合約,名為 UniformShop,它用於販售學校制服。 我們希望合約在收到以太幣後自動處理購買制服的操作。 UniformShop 合約定義了一個 fallback 函式,用於接收以太幣並購買制服。 當有人向合約地址轉帳時,如果轉帳金額足夠支付制服的價格,則 fallback 函式將
    try-catch 語句用於處理外部函數調用或合約創建過程中可能發生的錯誤 以下是一個使用小朋友睡著作為例子的簡單程式碼 // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract Child { bool publ
    你可能也想看
    Thumbnail
    1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
    Thumbnail
    重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
    Thumbnail
    近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
    Thumbnail
    臨時請假一天,繼續崩潰。 知道作業趕不完,不敢睡到九點了,一大早七點就跟老公一起出門,那麼早常去的咖啡廳沒開,只能去星巴克報到。
    ▍盤勢分析 加權難得開高走高 終場上漲 79 點,收 17545.32,站回五日線 櫃買也是開高走高,一舉收復十日線 ▍籌碼分析 現貨: 外資買超 36 E => 多 期貨: 空單增加 754 口,來到 -25,309 口 => 空 小台散戶做多
    Thumbnail
    今天24/1/11臺灣時間19:57,即將迎來本年度第一次的新月,摩羯座的新月對於制定一年計劃是一個好的時機。在這個新月的日子裡,可以明確自己的目標,並且想像未來充滿信心的自己,更容易實現目標,可以幫助改變人生。
    大盤熱錢資金目前流往通路 網通 航運 資安 
    Thumbnail
    很開心遇到《整理想法的技術》這本書,它的言簡意賅,讓我閱讀中有了不少啟發,對我而言,如果問我看這本書,最大的收獲是什麼?我要說的整理就是「捨」,書中很多道理相近,我自己「分類」後,我覺得就是「捨的力量」!而這個捨的力量,運用在日常生活中竟是出奇的有意思,今天就來分享一下我把這本書運用在生活中的例子,
    Thumbnail
    1/10 今日加權指數在平盤附近震盪,震幅縮小到剩下60點,收下影線的小黑K,下跌69點,收17465,成交量縮2579億。 1/10 今日otc在平盤附近震盪,震幅縮小留比較長下影線的十字線,下跌0.07點,收229.41,成交量577.91億。 今天三大法人,外資賣超31億、投信買超24
    Thumbnail
    客戶的岳父有台老corolla , 快30年老車只開11萬多公里 這種車的通病 : "時速表不準 , 轉速表抖動" 轉速表恢復正常 時速表路試正常
    Thumbnail
    烏俄戰爭更新,美國班機延誤,世界銀行下修預期,老鮑的獨立性
    Thumbnail
    2022.01.11 願 新的一年裡 第一聲鐘響 : 一元復始 一生健康 快樂平安
    Thumbnail
    1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
    Thumbnail
    重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
    Thumbnail
    近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
    Thumbnail
    臨時請假一天,繼續崩潰。 知道作業趕不完,不敢睡到九點了,一大早七點就跟老公一起出門,那麼早常去的咖啡廳沒開,只能去星巴克報到。
    ▍盤勢分析 加權難得開高走高 終場上漲 79 點,收 17545.32,站回五日線 櫃買也是開高走高,一舉收復十日線 ▍籌碼分析 現貨: 外資買超 36 E => 多 期貨: 空單增加 754 口,來到 -25,309 口 => 空 小台散戶做多
    Thumbnail
    今天24/1/11臺灣時間19:57,即將迎來本年度第一次的新月,摩羯座的新月對於制定一年計劃是一個好的時機。在這個新月的日子裡,可以明確自己的目標,並且想像未來充滿信心的自己,更容易實現目標,可以幫助改變人生。
    大盤熱錢資金目前流往通路 網通 航運 資安 
    Thumbnail
    很開心遇到《整理想法的技術》這本書,它的言簡意賅,讓我閱讀中有了不少啟發,對我而言,如果問我看這本書,最大的收獲是什麼?我要說的整理就是「捨」,書中很多道理相近,我自己「分類」後,我覺得就是「捨的力量」!而這個捨的力量,運用在日常生活中竟是出奇的有意思,今天就來分享一下我把這本書運用在生活中的例子,
    Thumbnail
    1/10 今日加權指數在平盤附近震盪,震幅縮小到剩下60點,收下影線的小黑K,下跌69點,收17465,成交量縮2579億。 1/10 今日otc在平盤附近震盪,震幅縮小留比較長下影線的十字線,下跌0.07點,收229.41,成交量577.91億。 今天三大法人,外資賣超31億、投信買超24
    Thumbnail
    客戶的岳父有台老corolla , 快30年老車只開11萬多公里 這種車的通病 : "時速表不準 , 轉速表抖動" 轉速表恢復正常 時速表路試正常
    Thumbnail
    烏俄戰爭更新,美國班機延誤,世界銀行下修預期,老鮑的獨立性
    Thumbnail
    2022.01.11 願 新的一年裡 第一聲鐘響 : 一元復始 一生健康 快樂平安