Go基础语法练习(4)


Server

package main

import (
    "fmt"
    "net"
)

func main() {
    // 1.创建监听
    ip := "127.0.0.1"
    port := 8080
    address := fmt.Sprintf("%s:%d", ip, port)
    server, err := net.Listen("tcp", address)
    defer server.Close()
    if err...

Read more

Go基础语法练习(3)


package main

import (
    "fmt"
    "strconv"
    "time"
)

func display() {
    for i := 0; i < 10; i++ {
        fmt.Println("协程display", i)
        time.Sleep(1 * time.Second)
        //if i == 3 {
        //  // 退出当前的协程
        //  // runtime.Goexit...

Read more

Go基础语法练习(2)


package main

import (
    "fmt"
    "os"
)

func init() {
    // 每个包中第一个执行的函数,import时自动执行,不能被用户调用
    // 没有参数,没有返回值
    // 包中包含多个init时,调用顺序不确定
    fmt.Println("Hello Init")
}

func main() {
    //switchTest()
    //gotoTest()
    //enumTest()
    //structTest()
    ...

Read more

Go基础语法练习(1)


package main

import (
    "fmt"
    "strconv"
)

func main() {
    zTest()
    fibo()
    strTest()
    arrayTest()
    sliceTest()
    mapTest()
    a, b, c := funTest(1, 3, "Code ")
    fmt.Println(a, b, c)

}

func funTest(a int, b int, c string) (int, bool, stri...

Read more

RPC


RPC

什么是RPC?

RPC 是远程过程调用(Remote Procedure Call)的缩写形式。

RPC 是指计算机 A 上的进程,调用另外一台计算机 B 上的进程,其中 A 上的调用进程被挂起,而 B 上的被调用进程开始执行,当值返回给 A 时,A 进程继续执行。

调用方可以通过使用参数将信息传送给被调用方,而后可以通过传回的结果得到信息。而这一过程,对于开发人员来说是透明的。

  • 远程过程调用采用客户机/服务器(C/S)模式。
  • 请求程序就是一个客户机,而服务提供程序就是一台服务器。
  • 和常规或本地过程调用一样,远程过程调用是同步操作,在远程过程结果返回之前,需要暂时中止请求程...

Read more

编译器结构


编译原理

编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 编译原理是计算机专业设置的一门重要的专业课程。编译原理课程是计算机相关专业学生的必修课程和高等学校培养计算机专业人才的基础及核心课程,同时也是计算机专业课程中最难及最挑战学习能力的课程之一。编译原理课程内容主要是原理性质,高度抽象。

编译器的高层结构

编译器具有非常模块化的高层结构

输入 -> 前端 -> 后端 -> 目标代码

前端处理和输入相关的功能。 后端处理指令集的...

Read more

Rust入门


Rust入门

介绍

Rust 语言是一种高效、可靠的通用高级语言。其高效不仅限于开发效率,它的执行效率也是令人称赞的,是一种少有的兼顾开发效率和执行效率的语言。

Rust 语言由 Mozilla 开发,最早发布于 2014 年 9 月。

Rust 致力于成为优雅解决高并发和高安全性系统问题的编程语言 ,适用于大型场景,即创造维护能够保持大型系统完整的边界。这就导致了它强调安全,内存布局控制和并发的特点。标准Rust性能与标准C++性能不相上下。

安装Rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs...

Read more

GORM (一)


GORM (一)

The fantastic ORM library for Golang aims to be developer friendly.

对Go开发者友好的优秀ORM库。

特性

  • 全功能 ORM
  • 关联 (Has One,Has Many,Belongs To,Many To Many,多态,单表继承)
  • Create,Save,Update,Delete,Find 中钩子方法
  • 支持 PreloadJoins 的预加载
  • 事务,嵌套事务,Save Point,Rollback To Saved Point
  • Context、预编译模式、DryRun 模式
  • 批量插入,Find...

Read more

Java快速入门(六)


Java快速入门(六)

继承与组合

继承(Inheritance)

定义

  • 子类对父类进行扩展,从一般到特殊的关系,父类放共性,子类放特性
  • 继承表达的是一种“是(is-a)”的关系

语法格式

在定义子类(sub class)的时候使用 extends 来表明自己继承于哪一个父类(super class)

// 子类继承父类
class SubClass extends SuperClass {
    // 子类特有的字段和方法
}

作用

  • 描述一个体系
  • 其次解决代码重复

注意

  • 只允许单继承,不允许多继承,支持多重继承
  • java.lang.Object 类是 Java 语言的...

Read more

Java快速入门(五)


Java快速入门(五)

Java修饰符

修饰符适用范围 图 1 修饰符适用范围

访问权限修饰符

  • 用于控制一个类的成员是否可以在其它类中访问,不能修饰局部变量

    访问权限修饰符 图 2 访问权限修饰符

  • private(当前类访问权限):在同一类内可见,只能被所属类访问

  • (包访问权限):不使用任何修饰符时,在同一包内可见
  • protected(子类访问权限):对同一包内的任何其它类和不同包中的子类可见,不能修饰接口中的成员变量和成员方法(注意:在不同包中的子类只能通过该子类访问父类中 protected 成员,通过其它子类或父类都无法访问)
  • public(公共访问权限):对所有类可见

非访问修饰符

  • stati...

Read more