1. Trang chủ
  2. » Giáo Dục - Đào Tạo

LẬP TRÌNH NÂNG CAO (CO2039) bài tập lớn tìm hiểu về ngôn ngữ golang

52 31 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm Hiểu Về Ngôn Ngữ Golang
Tác giả Trương Tuấn Anh, Đặng Quang Huy
Người hướng dẫn GVHD: Sinh viên
Trường học Đại học Bách Khoa Thành phố Hồ Chí Minh
Chuyên ngành Khoa Khoa Học Và Kỹ Thuật Máy Tính
Thể loại bài tập lớn
Năm xuất bản 2022
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 52
Dung lượng 703,3 KB

Nội dung

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH LẬP TRÌNH NÂNG CAO (CO2039) Bài tập lớn Tìm hiểu ngôn ngữ Golang GVHD: Sinh viên: Trương Tuấn Anh Đặng Quang Huy - 2012504 - L05 THÀNH PHỐ HỒ CHÍ MINH, THÁNG 2022 Đại học Bách Khoa thành phố Hồ Chí Minh Khoa Khoa học Kỹ thuật Máy tính Contents Giới thiệu chung 1.1 Tổng quan 1.2 Lịch sử phát triển 1.2.1 1.2.2 Go - Một ngơn ngữ lập trình tuyệt vời 2.1 Đặc điểm 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.2 Điểm mạnh 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.3 Những mặt hạn chế 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.4 Cách sử dụng 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.4.10 2.4.11 2.4.12 2.4.13 2.4.14 2.4.15 2.4.16 Tổng kết Bài Tập lớn Lập Trình Nâng Cao - CO2039 Page 1/35 Đại học Bách Khoa thành phố Hồ Chí Minh Khoa Khoa học Kỹ thuật Máy tính 1.1 Giới thiệu chung Tổng quan Go (còn biết đến với tên gọi khác Golang Go Language) ngơn ngữ lập trình phát triển Google, Đây loại ngơn ngữ có mã nguồn mở (opensource, statically-typed compiled, ngôn ngữ lập trình rõ ràng (explicit programming language) Đây ngơn ngữ lập trình đa mơ hình (multi-paradigm) hướng đối tượng (object-oriented) Go ngôn ngữ dùng phổ biến Google với nhiều tổ chức khác với project có mã nguồn mở Go truyền cảm hứng hai loại ngơn ngữ lập trình phổ biến khác Python C Go thừa hưởng đơn giản từ Python hiệu C Hình 1: Go Language Sự thật thú vị: Golang (Một tên gọi khác Go) bắt nguồn từ tên miền trang chủ thức Go Nó thực hữu dụng việc tìm kiếm keyword "Golang" thuận tiện nhiều so với keyword "Go" sử dụng cơng cụ tìm kiếm Google (Nó giúp ta dễ việc tìm kiếm thơng tin ngơn ngữ lập trình này) 1.2 Lịch sử phát triển Trước Go đời, việc sử dụng ngôn ngữ phực tạp để giải vấn đề lớn trở nên khó khắn Như ngơn ngữ C++, để giải vấn đề ngơn ngữ ngày dài Điều vốn không hợp lý , thời gian tiêu tốn lẫn suất hoạt động Người đặt móng cho ngơn ngữ lập trình Go bao gồm: Robert Griesemer, Rob Pike, Ken Thompson - kỹ sư phần mềm đến từ Google Họ có chung mục đích: tạo ngơn ngữ lập trình dễ dàng sử dụng bao qt vấn đề trình làm việc với hệ thống phức tạp Vào năm 2007, Go thiết kế - với ứng dung việc cải thiện suất lập trình thời đại multicore, networked machines lagre corebase Từ Go, nhà thiết kế dã cố gắng Bài Tập lớn Lập Trình Nâng Cao - CO2039 Page 2/35 Đại học Bách Khoa thành phố Hồ Chí Minh Khoa Khoa học Kỹ thuật Máy tính khắc phục điểm yếu giữ nguyên tính tối ưu ngơn ngữ lập trình khác Hình 2: Từ trái sang phải: Robert Griesemer, Rob Pike, Ken Thompson Go mắt với cộng đồng vào tháng 11 năm 2009, phiên 1.0 tiếp tục giới thiệu vào tháng năm 2012 Vào tháng 11/2016, Go Go Mono fonts mắt hai nhà thiết kế: Charles Bigelow Kris Holmes, chuyên dụng cho project sử dụng ngôn ngữ Go Tháng 4/2018, Logo ngôn ngữ thay biểu tượng GO cách điệu nghiêng bên phải với đường nét cuối Hình 3: Logo ngơn ngữ lập trình Go Bài Tập lớn Lập Trình Nâng Cao - CO2039 Page 3/35 Đại học Bách Khoa thành phố Hồ Chí Minh Khoa Khoa học Kỹ thuật Máy tính 1.2.1 Generic Programming Generic programming (Lập trình tổng quát) mơt dạng lập trình máy tính mà đó, thuật toán viết theo dạng xác định sau sau khởi tạo (instantiate) cần cho kiểu cụ thể mà cung cấp tham số Sự thiếu hụt việc hộ trợ Generic programming phiên Golang dấy lên tranh luận đáng lưu ý Các nhà lập trình bày tỏ hứng thú với generic programming ghi tích hợp vào hàm (functions) với kiểu chung chung (type-generic), kiểu sử dụng trường hợp đặc biệt Pike - lập trình viên thiết kế Golang, nghĩ lúc điểm yếu cải tiến Vào tháng 4/2018, nhà phát triển Go cho mắt dự thảo thiết kể generic programming error-handling, từ thu thấp phản hồi người dùng Nhưng đề xuất error-handling bị loại bỏ Tháng 6/2020, tài liệu thiết kế dự thảo xuất nhằm bổ sung cú pháp cần thiết cho Go để khai báo hàm kiểu chung Một công cụ dịch mã, go2go cung cấp cho người dùng với mục đích thử cú pháp mới, với phiên hỗ trợ chung với Go Playground trực tuyến Với phiên 1.18 Go, Generic programming tích hợp nhằm tối ưu hóa ứng dụng cho lập trình viên Hình 4: An Example of Generic Programming in Golang Bài Tập lớn Lập Trình Nâng Cao - CO2039 Page 4/35 Đại học Bách Khoa thành phố Hồ Chí Minh Khoa Khoa học Kỹ thuật Máy tính 1.2.2 Các phiên phát hành Các phiên Go đảm bảo tính tương thích với việc đặc tả ngơn ngữ phần thư viên chuẩn Dưới bảng thống kê phiên phát hành ngôn ngữ Golang Release go1 go1.1 go1.2 go1.3 go1.4 go1.5 go1.6 go1.7 go1.8 go1.9 go1.10 go1.11 go1.12 go1.13 go1.14 go1.15 go1.16 go1.17 go1.18 Bài Tập lớn Lập Trình Nâng Cao - CO2039 Page 5/35 Đại học Bách Khoa thành phố Hồ Chí Minh Khoa Khoa học Kỹ thuật Máy tính Go - Một ngơn ngữ lập trình tuyệt vời 2.1 Đặc điểm Ngôn ngữ Go, xuât thị trường vào năm 2009, thiết kế với mục đích nhằm nâng cao sản phẩm ứng dụng thuộc ngành bao gồm: networked machines, multicore, huge codebases Một điểm tuyệt vời mà Go thể cho là: • Static typing runtime efficiency C++ • Usability Readability Python Javascript • Khái niệm Lập trình hướng đối tượng (OOP) SmallTalk • Concurrency element Newsqueak Sau sâu phân tích đặc điểm Go 2.1.1 Open-source Đặc điểm ngơn ngữ lập trình Golang ngơn ngữ lập trình có mã nguồn mỡ Nghĩa là, người tải thử nghiệm với code để mang đến source code tốt sưa lại bug liên quan Hình 5: Đắc diểm Open-source 2.1.2 Static-typing Go ngôn ngữ statically-typed làm việc với chế biên dịch code cách xác quan tâm tới kiểu chương trình mức độ tương thích Nó giúp cho lập trình viên tự việc khắc phục khó khắn so với sử dụng ngôn ngữ dynamically-typed Bài Tập lớn Lập Trình Nâng Cao - CO2039 Page 6/35 Đại học Bách Khoa thành phố Hồ Chí Minh Khoa Khoa học Kỹ thuật Máy tính 2.1.3 Concurrency Support Một đặc tính mạnh mẽ ngơn ngữ lập trình Go việc hộ đồng thời thực thi (concurrency) Golang, khơng ngơn ngữ lập trình khác, đề xuất lựa chon đồng thời dễ dàng dễ tìm kiếm Nó giúp cho lập trình viên mảng phần mềm dễ dàng việc hồn thành u cầu cách nhanh giải phóng tài nguyên đữ phân bổ dụng kết nối với sớm hơn, nhiều 2.1.4 Powerful Standard Library Tool Set Ngơn ngữ lập trình Go cho với thư viên tiêu chuẩn mạnh mẽ Những thư viện cho phép sử dụng component phong phú, giúp cho nhà phát triển tránh khỏi viêc phải sử dụng gói bên thứ Ngồi ra, đưa cho lượng lớn công cụ giúp cho việc phát triển tiến trình thêm hiểu quả, là: • Gofmt: Nó giúp tự động chỉnh sửa định dạng code ngôn ngữ Go, bới khó khắn tính readability • Gorun: Cơng cụ dùng để thêm vào "bang line" code nguồn để chạy nó, chạy dịng code sode cách rõ ràng Nó thường sử dụng bới nhà lập trình Go q trình thử nghiệm với dịng mã viết Python • Goget: Đây cơng cụ dùng để tải thư viện từ GitHub lưu trử GoPath, từ giúp cho lập trình viên để dạng inport thư viện project • Godoc: Là cơng cụ dùng để phân tích mã nguồn code ngơn ngữ Golang, bao gồm comment tạo a văn băng HTML định dạng văn Văn tạo thường gắn chặt với code văn định vị cách dễ dàng với cú click chuột 2.1.5 Testing Capabilities Ngơn ngữ Go cịn đề xuất hội để viết unit tests với việc viết app codes Bên cạnh đó, cúng giúp hổ trợ việc hiểu độ bao phủ code, kiểm tra hiệu suất, viết code mâu để sáng tạo nên tệp code riêng người 2.1.6 Garbage Collection Go cung cấp cho người sử dụng sức mạnh tuyệt vời thu gom rác (garbage collection) Nghĩa là, nhà phát triển khơng cịn phải lo lắng việc giải phóng trỏ (pointers) tình liên quan đến lung lẳng pointers (Dangling pointer trỏ mã dẫn đến khối nhớ sai số điểm đến ý muốn) 2.1.7 Kết Luận Nhờ đặc điểm nêu trên, Go đón nhận bới nhiều quan tâm nhiều tập đoàn tiềng khác Google như: Apple, Twitter, Facebook, Bài Tập lớn Lập Trình Nâng Cao - CO2039 Page 7/35 Đại học Bách Khoa thành phố Hồ Chí Minh Khoa Khoa học Kỹ thuật Máy tính Hình 6: Những tập đoàn sử dụng Go Ngoài ra, Go ngôn ngữ ứng dụng công ty nhỏ start up để tao phần mềm cần thiết Và từ thấy thành tựu tuyệt vời chúng Từ phải tìm hiều điểm mạnh điểm yêu ngôn ngữ nhằm sử dung cách tối ưu hơn, tạo tiền đề cho viêc phát triển ngôn ngữ nói riêng lập trình ứng dụng nói chung 2.2 2.2.1 Điểm mạnh Easy Learning Curve Với coder mớt bất đầu Go ngơn ngữ lập trình cho trình trải nghiệm viết code họ với ngơn ngữ (statically-typed), cịn thế, việc học thứ Go đêm điều Tất nhiên, khơng khiên trở thành người giỏi việc code, phải hiểu rõ thư viện tiêu chuẩn ngôn ngữ, luyện tập thật nhiều chuyên sâu, với mức độ thích hợp, những điều giản đơn Go học cách dễ dàng Với nhà lập trình đến từ ngơn ngữ khác Go gần với C lại có thêm điểm như: garbage collection, structual typing, CSP-style concurrency Đươc phát triển Google, Go cài đặt tiêu chuẩn định cho tài liều Với rõ ràng dễ dàng để nắm bắt Những điều Go định nghĩa cách dễ hiểu chung ta cố gắng tiếp cận Các Blog Go cung cấp cho chung nguồi tài liệu cho nhà lập trình để nâng cao trình độ người 2.2.2 Simplicty Speed Go ngôn ngữ lập trình tối giản Hầu hết, điều tốt Lõi ngôn ngữ bao gồm số tính đơn giản, trực giao, từ kết hơp theo số lượng nhỏ tương đối cách Điều khiến cho việc học ngơn ngữ, đọc viết chương trình trở nên dễ dàng Ngơn ngữ Go có khả tạo executable code, chép mà khơng phá hủy dependencies Go cung cấp số lợi ích thú vị speed Một chương trình Go biên dịch thẳng thành mã Bài Tập lớn Lập Trình Nâng Cao - CO2039 Page 8/35 Đại học Bách Khoa thành phố Hồ Chí Minh Khoa Khoa học Kỹ thuật Máy tính máy, nên đương diên hoạt động tốt so với ngơn ngữ thơng dịch (interpreted) có thời gian chạy ảo (virtual runtime) Không kết biên dịch chương trình thực nhanh, mà tệp nhị phân biên dich có dung lượng nhỏ đến mức kinh ngạc Chúng ta đề cập đến cách mà Go xử lý tệp code ngôn ngữ Nhưng có bược tiến xa việc khiến cho chương trình ngơn ngữ Go trở nên tối ưu Godoc cơng cụ phân tích mã tĩnh giúp nhà lập trình viên tạo những tệp code đẹp mắt mà không sử dụng thêm ngơn ngữ ngồi khác, Javadoc, PHPDoc Nó sử dung nhiều thơng tin từ tệp code, từ phác thảo, cấu trúc tái định dạng lại Nó cập nhật với tính nâng cao bao gồm tham chiếu chéo, mãu code liên kết trực tiếp đến kho lưu trữ hệ thống kiểm soát phiên lúc trước 2.2.3 Package System Với bắt đầu làm quen với ngôn ngữ lập trinh Go, packages quen thuộc với nhà lập trình viên họ có kinh nghiệm tiếp xúc với ngôn ngữ Java C/C++ Với người khác, theo thuật ngữ bản, packages thực mục bên chương trình mà để lưu trử source codes, dependencies nhiều packages Những packages đưa đoạn code rời rạc rõ ràng tăng hiểu quản lý cho thành phần phụ thuộc (dependencies Cơ chế packages tính thiết kể đơn giản hiệu tích hợp ngơn ngữ này, chắn lợi ich tuyệt vời sử dụng ngôn ngữ Go 2.2.4 Multithreading Concurrency Những ngơn ngữ lập trình phải đối mặt với vấn đề phân bổ tài nguyên ngày khó khắn phần cứng dần trở nên phức tạp Thường lệ, nhà chế tạo thêm vào nhiều lõi (cores) vào hệ thống nhằm nâng cao hiệu Với core thêm vào, hệ thống lại cần phải trì nhiều kết nối liệu với thông qua microservices, quản lý gia tăng số lượng hàng đợi (queues) and trì caches Các phần cứng cần lập trình ngơn ngữ có hổ trợ đồng thời concurrency, có khả hỗ trợ cho hệ thông đa lõi (multi-core systems) tương lai Go hưởng lợi từ việc phát triển thời kỳ mà hệ thống đa lõi ngày trở nên phổ biến có sẵn rộng rãi phần cứng phức tạp Vì tế, nhà lập trình đặc biệt ý vào việc hỗ trợ đồng thời, phát triển ’goroutines’ thay luồng - cho phép ngôn ngữ xử lý đồng thời số lượng lớn tác vụ thời điểm model gọi CSP (Communicating Sequential Processes) Thay khóa biến để chia sẻ nhớ, Go cho phép bạn truyền giá trị lưu trữ biến bạn từ luồng sang luồng khác 2.2.5 Inbuilt Testing Profiling Framework Với lập trình viên sử dụng ngơn ngữ Javascript, việc cố gằng tìm kiếm testing framework cho project thật điều khó khăn Với Go, ngơn ngữ kèm theo cơng cụ kiêm Bài Tập lớn Lập Trình Nâng Cao - CO2039 Page 9/35 Đại học Bách Khoa thành phố Hồ Chí Minh Khoa Khoa học Kỹ thuật Máy tính package main import " fmt " func main () { x var y := [5] int {10 , [5] int = fmt Println ( x ) fmt Println ( y ) 10 11 } Kết đước xuất hình là: [10 20 30 40 50] [10203000] Chúng ta tạo mảng dù khơng biết cung cấp độ dài chún, trình biên dịch nhận diện độ dài mảng, dựa elements khai báo mảng Ví dụ: package main import ( " fmt " " reflect " ) func main () { check := [ ] int {1 , , 3} 10 11 12 13 } fmt Println ( reflect ValueOf ( check ) Kind () ) fmt Println ( len ( check ) ) Chùng ta có kết xuất hình là: array Khi khai báo mảng, giá trị khởi tạo cách chuyên dụng sau package main import " fmt " func main () { fmt Println ( x ) } Output: [0 ,10 ,0 ,30 ,0] x := [5] int {1: 10 , 3: 30} 2.4.13 Struct Một cấu trúc Struct tập hợp miền liệu khai bao Structs cách để tạo kiểu data cụ thể người dùng tự định nghĩa Go Để khai báo kiểu cấu trúc, ta sử dụng Syntax sau: type i d e n t i f i e r struct { field1 d a ta _ ty pe field2 d a ta _ ty pe Bài Tập lớn Lập Trình Nâng Cao - CO2039 Page 27/35 Đại học Bách Khoa thành phố Hồ Chí Minh Khoa Khoa học Kỹ thuật Máy tính field3 d a ta _ ty pe } Ví dụ: package main import " fmt " type rec struct { length float64 7breadth float64 color string } 10 11 func 12 13 14 15 16 17 18 } main () { var how rec how length = 3.12 how breadth = 4.5 how color = " pink " fmt Println ( rec {10.5 , 25.10 , " red " }) fmt Println ( " check : " , how color ) Chúng ta có kết là: {10.5 25.1 red } check : pink 2.4.14 Map Map cấu trúc dũ liệu cung cấp cho bạn tập hợp không trật tự cặp key/value Nó dùng để tìm kiếm giá trị key cung cấp Map khởi tạo Hash table, giúp tìm kiếm elements cách nhanh chóng truy xuất liệu dễ dàng Ví dụ Map Go: package main import " fmt " var employee = map [ string ] int {" Mark " : 10 , " Sandy " : 20} func main () { fmt Println ( employee ) } Kết thu là: map [ Mark :10 Sandy :20] Chúng ta khai báo Map từ khóa make biết độ dài Map dùng hàm llen() package main import " fmt " func main () { var employee = make ( map [ string ] int ) employee [ " Mark " ] employee [ " Sandy " ] Bài Tập lớn Lập Trình Nâng Cao - CO2039 Page 28/35 Đại học Bách Khoa thành phố Hồ Chí Minh Khoa Khoa học Kỹ thuật Máy tính 10 e m p l o y e e L i s t := make ( map [ string ] int ) 11 12 13 14 } fmt Println ( len ( employee ) ) fmt Println ( len ( e m p l o y e e L i s t ) ) // Chúng ta truy cập, thêm, xóa cập nhật liệu cách sử dụng index key sau: package main import " fmt " func main () { var employee = map [ string ] int {" Mark " : 10 , " Sandy " : 20} fmt Println ( employee [ " Mark " ]) // Access employee [ " Rocky " ] = 30 // Add 10 element 11 employee [ " Mark " ] = 50 // 12 Update item 13 14 delete ( employee , " Mark ") // Delete item 15 16 17 } fmt Println ( employee ) ; 2.4.15 Gouroutine Channels Như đề cập trên, Go ngôn ngữ hổ trợ đồng thời (Concurrency) giúp hàm chạy độc lập với Goroutines function để trợ giúp điều Nó sử dụng Go để xử lý phép toán diễn đồng thời Muốn tạo goroutines mới, sử dụng từ khóa go sum () completing go sum () completing Từ khóa go giúp cho lời gọi hàm trả lập tức, hàm bắt đầu chạy goroutines tất phần lại chương trình thực thi (Tất hàm main Go bắt đầu sử dụng gouroutine, nên chương trình Go chạy goroutine) Để thấy rõ ràng, có ví dụ sau cách tạo gouroutine: package main import ( " fmt " "io/ ioutil " " log " " net / http " " time " ) 10 11 func r e s p o n s e S i z e ( url string ) { 12 fmt Println ( " Step1 : " , url ) Bài Tập lớn Lập Trình Nâng Cao - CO2039 Page 29/35 Đại học Bách Khoa thành phố Hồ Chí Minh Khoa Khoa học Kỹ thuật Máy tính 13 14 15 16 response , err := http Get ( url ) if err != nil { log Fatal ( err ) } 17 18 19 fmt Println ( " Step2 : " , url ) defer response Body Close () 20 21 22 23 24 25 26 27 } fmt Println ( " Step3 : " , url ) body , err := ioutil ReadAll ( response Body ) if err != nil { log Fatal ( err ) } fmt Println ( " Step4 : " , len ( body ) ) 28 29 30 31 32 33 34 } func go go go main () { r e s p o n s e S i z e ( " https :// www g o l a n g p r o g r a m s com ") r e s p o n s e S i z e ( " https :// c od e rw a ll com ") r e s p o n s e S i z e ( " https :// s t a c k o v e r f l o w com " ) time Sleep (10 * time Second ) Chúng ta thêm từ go vào trước lần gọi hàm responseSize, ba lần gọi hàm responseSize goroutines bắt đầu đồng thời lần gọi http.Get diễn đồng thời Chương trình khơng muốn chờ lần gọi đáp lại để gưi yêu cầu khác Kết cho thấy xuất lên hình diễn nhanh nhiều Step1 : https :// www g o l a n g p r o g r a m s com Step1 : https :// s t a c k o v e r f l o w com Step1 : https :// c od e rw a ll com Step2 : https :// s t a c k o v e r f l o w com Step3 : https :// s t a c k o v e r f l o w com Step4 : 116749 Step2 : https :// www g o l a n g p r o g r a m s com Step3 : https :// www g o l a n g p r o g r a m s com Step4 : 79551 10 Step2 : 11 Step3 : 12 Step4 : https :// c od e rw a ll com https :// c od e rw a ll com 203842 Chúng ta sử dụng hàm time.Sleep hàm main để tránh việc goroutine thoát trước goroutine ResponseSize hồn thành Ta thấy được, việc sử dụngGoroutine chưa đủ goroutine muốn giao tiếp với đồng trình chạy Và có Channels Đây chế giúp cho goroutine chia sẻ liệu với Khi chương trình thực thi hoạt động goroutine đồng thời, dứ liệu tài nguyên cần chia goroutine với nhau, channels làm việc kênh (đường ống) goroutines cung cấp chế giúp cho qua trình làm việc đồng hoạt động Một channels tạo nhơ hàm make(), hàm định từ chan keyword phân tử channels Syntax sử dụng là: Unbuffered buffered := Để gửi giá trị tới kênh cần sử dụng dấu ’

Ngày đăng: 18/10/2022, 13:48

HÌNH ẢNH LIÊN QUAN

Hình 1: Go Language - LẬP TRÌNH NÂNG CAO (CO2039) bài tập lớn tìm hiểu về ngôn ngữ golang
Hình 1 Go Language (Trang 3)
Hình 3: Logo của ngơn ngữ lập trình Go - LẬP TRÌNH NÂNG CAO (CO2039) bài tập lớn tìm hiểu về ngôn ngữ golang
Hình 3 Logo của ngơn ngữ lập trình Go (Trang 4)
Hình 2: Từ trái sang phải: Robert Griesemer, Rob Pike, và Ken Thompson Go được ra mắt với cộng đồng vào tháng 11 năm 2009, và phiên bản 1.0 được tiếp tục  giới thiệu vào tháng 3 năm 2012. - LẬP TRÌNH NÂNG CAO (CO2039) bài tập lớn tìm hiểu về ngôn ngữ golang
Hình 2 Từ trái sang phải: Robert Griesemer, Rob Pike, và Ken Thompson Go được ra mắt với cộng đồng vào tháng 11 năm 2009, và phiên bản 1.0 được tiếp tục giới thiệu vào tháng 3 năm 2012 (Trang 4)
Dưới đây là bảng thống kê các phiên bản đã được phát hành của ngôn ngữ Golang. Release - LẬP TRÌNH NÂNG CAO (CO2039) bài tập lớn tìm hiểu về ngôn ngữ golang
i đây là bảng thống kê các phiên bản đã được phát hành của ngôn ngữ Golang. Release (Trang 6)
Hình 5: Đắc diểm Open-source 2.1.2Static-typing - LẬP TRÌNH NÂNG CAO (CO2039) bài tập lớn tìm hiểu về ngôn ngữ golang
Hình 5 Đắc diểm Open-source 2.1.2Static-typing (Trang 7)
Hình 6: Những tập đồn đã và đang sử dụngGo - LẬP TRÌNH NÂNG CAO (CO2039) bài tập lớn tìm hiểu về ngôn ngữ golang
Hình 6 Những tập đồn đã và đang sử dụngGo (Trang 9)
Hình 7: Trang chủ chính thức của Go - LẬP TRÌNH NÂNG CAO (CO2039) bài tập lớn tìm hiểu về ngôn ngữ golang
Hình 7 Trang chủ chính thức của Go (Trang 12)
Đầu tiên, vào trang chủ chính của của ngơn ngữ Go go.dev. Chúng ta sẽ được màn hình hiển thị như sau. - LẬP TRÌNH NÂNG CAO (CO2039) bài tập lớn tìm hiểu về ngôn ngữ golang
u tiên, vào trang chủ chính của của ngơn ngữ Go go.dev. Chúng ta sẽ được màn hình hiển thị như sau (Trang 12)
Hình 9: Trang hướng dẫn Download Golang - LẬP TRÌNH NÂNG CAO (CO2039) bài tập lớn tìm hiểu về ngôn ngữ golang
Hình 9 Trang hướng dẫn Download Golang (Trang 13)
Hình 10: Một số Keywword trong Go - LẬP TRÌNH NÂNG CAO (CO2039) bài tập lớn tìm hiểu về ngôn ngữ golang
Hình 10 Một số Keywword trong Go (Trang 15)
Hình 11: Các tốn tử số học - LẬP TRÌNH NÂNG CAO (CO2039) bài tập lớn tìm hiểu về ngôn ngữ golang
Hình 11 Các tốn tử số học (Trang 20)
Hình 12: Các tốn tử so sánh • Logical Operators: Cho A bằng True, B bằng False. - LẬP TRÌNH NÂNG CAO (CO2039) bài tập lớn tìm hiểu về ngôn ngữ golang
Hình 12 Các tốn tử so sánh • Logical Operators: Cho A bằng True, B bằng False (Trang 20)
Hình 14: Các tốn tử cho Bit - LẬP TRÌNH NÂNG CAO (CO2039) bài tập lớn tìm hiểu về ngôn ngữ golang
Hình 14 Các tốn tử cho Bit (Trang 21)
Hình 13: Các tốn tử logic - LẬP TRÌNH NÂNG CAO (CO2039) bài tập lớn tìm hiểu về ngôn ngữ golang
Hình 13 Các tốn tử logic (Trang 21)
1 if condition { - LẬP TRÌNH NÂNG CAO (CO2039) bài tập lớn tìm hiểu về ngôn ngữ golang
1 if condition { (Trang 22)
Hình 16: Các tốn tử hổn hợp 2.4.9 Decision making trong Go - LẬP TRÌNH NÂNG CAO (CO2039) bài tập lớn tìm hiểu về ngôn ngữ golang
Hình 16 Các tốn tử hổn hợp 2.4.9 Decision making trong Go (Trang 22)
Chùng ta sẽ có kết quả được xuất ra màn hình là: - LẬP TRÌNH NÂNG CAO (CO2039) bài tập lớn tìm hiểu về ngôn ngữ golang
h ùng ta sẽ có kết quả được xuất ra màn hình là: (Trang 38)
Kết quả đước xuất ra màn hình là: - LẬP TRÌNH NÂNG CAO (CO2039) bài tập lớn tìm hiểu về ngôn ngữ golang
t quả đước xuất ra màn hình là: (Trang 38)
2.4.16 Xuất Output ra màn hình - LẬP TRÌNH NÂNG CAO (CO2039) bài tập lớn tìm hiểu về ngôn ngữ golang
2.4.16 Xuất Output ra màn hình (Trang 48)
45 fmt. Printf (" Employee :% d: Started - LẬP TRÌNH NÂNG CAO (CO2039) bài tập lớn tìm hiểu về ngôn ngữ golang
45 fmt. Printf (" Employee :% d: Started (Trang 48)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w