编程语言 发展史 语言 计算机

面向对象编程的 SOLID 原则 - 里氏替换原则

里氏替换原则 里氏替换原则描述的是子类应该能替换为它的基类。 意思是,给定 class B 是 class A 的子类,在预期传入 class A 的对象的任何方法传入 class B 的对象,方法都不应该有异常。 这是一个预期的行为,因为继承假定子类继承了父类的一切。子类可以扩展行为但不会收窄。 ......
原则 里氏 对象 SOLID

面向对象编程的 SOLID 原则 - 接口隔离原则

接口隔离原则 隔离意味着保持独立,接口隔离原则是关于接口的独立。 该原则描述了很多客户端特定的接口优于一个多用途接口。客户端不应该强制实现他们不需要的函数。 这是一个简单的原则,很好理解和实践,直接看例子。 public interface ParkingLot { void parkCar(); ......
原则 接口 对象 SOLID

面向对象编程的 SOLID 原则 - 依赖倒置原则

依赖倒置原则 依赖倒置原则描述的是我们的 class 应该依赖接口和抽象类而不是具体的类和函数。 在这篇文章(2000)里,Bob 大叔如下总结该原则: “如果 OCP 声明了 OO 体系结构的目标,那么 DIP 则声明了主要机制”。 这两个原则的确息息相关,我们在讨论开闭原则之前也要用到这一模式。 ......
原则 对象 SOLID

Python面向对象编程-学习笔记(二)

5.类的继承 class Employee: raise_amount =1.04 def __init__(self, first, last, pay): self.first = first self.last = last self.pay= pay self.email = first + ......
对象 笔记 Python

面向对象编程的 SOLID 原则 - 开闭原则

开闭原则 开闭原则要求“class 应该对扩展开放对修改关闭”。 修改意味着修改存在 class 的代码,扩展意味着添加新的功能。 这个原则想要表达的是:我们应该能在不动 class 已经存在代码的前提下添加新的功能。这是因为当我们修改存在的代码时,我们就面临着创建潜在 bug 的风险。因此,如果可 ......
原则 对象 SOLID

面向对象编程的 SOLID 原则

SOLID 原则是面向对象 class 设计的五条原则。他们是设计 class 结构时应该遵守的准则和最佳实践。 通常,这五个原则可以帮助我们了解设计模式和软件架构。这是每个开发人员都应该了解的主题。 这篇文章介绍了在项目中使用 SOLID 原则的细节。 首先我们先看一下 SOLID 原则的历史。然 ......
对象 原则 SOLID

什么是编程领域的 DSL - Domain Specific Language

在编程领域中,Domain Specific Language(DSL)是一种特定于特定问题领域的计算机语言,设计用于解决该领域的特定类型的问题。DSL的设计目标通常包括提高生产力,使非程序员可以使用,以及提供特定类型的语言构造。DSL与通用编程语言(GPL)相对,GPL如Python、Java等, ......
Specific Language 领域 Domain DSL

C语言【怎么定义变量?】

变量定义的目的是向编译器说明在哪里创建变量的存储,并指明如何创建变量的存储方式。变量定义会明确指定一个数据类型,并包含一个或多个变量的列表。例如: type variable_list; 在这里,"type"必须是一个合法的C数据类型,可以是"char"、"w_char"、"int"、"float" ......
变量 语言

雀魂4 分数计算

满贯、跳满、役满、倍满 在《雀魂》中,计分是根据麻将的规则和役种来进行的。玩家在游戏中根据和牌时所达成的役种和条件,来计算得分。 计分过程如下: 役种计分:根据玩家和牌时所满足的役种,为和牌玩家增加相应的番数。每个役种都有对应的番数,番数越高,得分也越高。番数是麻将游戏中计算得分的基本单位。 飞宝( ......
分数

c语言学习笔记5

###### 内存空间 ``` 在C语言中,内存空间可以被划分为以下几个部分: 1. 栈(Stack):这部分内存由编译器自动分配和释放,用于存放函数的参数值,局部变量等。其操作方式类似于数据结构中的堆栈,先进后出。 2. 堆(Heap):堆是用于动态内存分配的。与栈不同,堆的分配和释放必须由程序员 ......
语言学习 语言 笔记

C#计算代码运行时间(Stopwatch的使用)

一、什么是Stopwatch Stopwatch:提供一组方法和属性,可以准确的测量运行时间。使用的时候需要引用命名空间:System.Diagnostics。 二、Stopwatch的简单使用 //创建Stopwatch实例 Stopwatch sw = new Stopwatch(); //开始 ......
Stopwatch 代码 时间

【go语言】2.3.2 error 接口

在 Go 语言中,`error` 是一个内置的接口类型,用于表示错误情况。`error` 接口的定义如下: ```go type error interface { Error() string } ``` 任何具有 `Error() string` 方法的类型都可以被视为实现了 `error` 接 ......
接口 语言 error

go语言全景俯瞰

本篇是语言教学的“传统项目”。每个写go语言教学的人,都会介绍它的发展历程,应用领域,优缺点和特点来介绍自己的理由。当然如果你有自己的理解,那就更好了,欢迎讨论! ![](https://img2023.cnblogs.com/blog/878843/202307/878843-2023072823 ......
语言

R语言分位数回归预测筛选有上升潜力的股票|附代码数据

原文链接:http://tecdat.cn/?p=18984 最近我们被客户要求撰写关于分位数回归的研究报告,包括一些图形和统计输出。 现在,分位数回归已被确立为重要的计量经济学工具。与均值回归(OLS)不同,目标不是给定x的均值,而是给定x的一些分位数 ( 点击文末“阅读原文”获取完整代码数据** ......
位数 潜力 语言 代码 股票

浙大版《C语言程序设计实验与习题指导(第4版)》题目集(持续更新)

# C语言练习 ## 实验1-1 Hello World! - 要求: 输出一个短句“Hello World!”。 - 答案: ```c #include int main() { printf("Hello world!\n"); return 0; } ``` ## 实验1-2 简单求阶乘问题 ......
习题 程序设计 题目 语言 程序

可编程网络实验室2023暑期纳新——第一次作业

|这个作业属于哪个课程|https://edu.cnblogs.com/campus/fzu/2023summer| |-- |-- | |这个作业要求在哪里|https://edu.cnblogs.com/campus/fzu/2023summer/homework/12993| |这个作业的目标 ......
可编 实验室 第一次 网络 2023

【go语言】2.3.1 错误处理的基本概念

在 Go 语言中,错误处理是通过返回错误值进行的,而不是像一些其他语言那样通过抛出和捕获异常。Go 语言有一个内置的接口类型 `error`,专门用于处理错误。 ### `error` 接口 `error` 是一个内置的接口,定义如下: ```go type error interface { Er ......
概念 错误 语言

Go 语言 select 都能做什么?

**原文链接:** [Go 语言 select 都能做什么?](https://mp.weixin.qq.com/s/YyyMzYxMi8I4HEaxzy4c7g) 在 Go 语言中,`select` 是一个关键字,用于监听和 `channel` 有关的 IO 操作。 通过 `select` 语句, ......
语言 select Go

介绍自动工作流程编程的几种常见方式

1.辅助继电器置复位法 第一步置位M1标志,接通后控制执行某个结果,结果实现后复位M1,再置位下一步M2标志,依次进行流程控制。置复位法是最基础的流程控制逻辑。还有一种用法。如下图,若“触发”接通,下一步句置位“自锁”,就断开与上一步的联系,等待最后一步,再把“触发”和“自锁”复位。 2.寄存器赋值 ......
工作流程 流程 常见 方式

第三章 指针才是C语言的精髓(嵌入式Linux与物联网软件开发 C语言内核深度解析)

这仅仅是读《嵌入式Linux与物联网软件开发:C语言内核深度解析》pdf的知识记录 地址:指的都是某个字节的地址。比如int a 的空间大小有4个字节,每个字节都有一个地址(也就是有4个地址),但是只有首字节地址才能作为整个a空间的地址。也就是说,整个内存以1个字节为基本单位划分无数个地址,同时假设 ......
语言 指针 精髓 内核 嵌入式

为什么学编程都建议不要用拼音命名?

前言 知乎上有个提问:为什么学编程都建议不要用拼音命名? ↓↓↓ 不知道身为程序员的你,曾经有没有用拼音在程序代码中命名变量名、方法名、注释等的经历? 作为国内的程序员,可能有小伙伴会埋怨,编程语言和开发工具都已经全英文了,用拼音命名怎么了又,不好吗。 现如今汉语普及率这么高的今天,全世界都在学中国 ......
拼音 建议

C编程练习-递归

1.使用递归解决计算第N项斐波那切数列 斐波那契数列:F(0)=1,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*) 1,1,2,3,5,8,13,21,34,55,89... 代码: #include<stdio.h> int func_f(int n) { ......

网络编程

# 网络编程入门 ## 网络编程三要素--概述 ![](https://img2023.cnblogs.com/blog/2942946/202307/2942946-20230727101953636-1224968917.png) ![](https://img2023.cnblogs.com/ ......
网络编程 网络

中国软件生态的发展

## 道德的滑坡 1. 如果说中国经济的发展导致社会层次的分化,思想道德品质的综合下降成为必然趋势 2. 那么彭宇案的法官王浩是一个助推剂,是这个原因的最好背锅理由 3. 每个国家都会有这个过程,美国基础人民的失智,信仰个人英雄主义 ## 软件生态的发展迟缓 1. 10年前就在做大屏展示,现在依然在 ......
生态 软件

Prometheus的rate函数是怎么计算的(不太靠谱)

Prometheus的rate函数是怎么计算的(不太靠谱) ## 前言 测试的数据类型是Counter类型,其他类型没测试,好像是类型改变了,rate函数的算法也变了 ## 抓取的原始数据 抓取间隔是15s 开始抓取到数据的时间是2023-07-27 14:14:34 第二个时间是2023-07-2 ......
Prometheus 函数 rate

初学C语言day06--进程影响及类型限定符

##### 进程映像: 程序:存储在磁盘上的可执行文件(二进制文件、脚本文件) 进程:正在系统中运行的程序 进程映像:进程的内存分布情况: text 代码段 存储二进制指令、常量,只读的,如果强行修改会产生段错误 data 数据段 初始化过的全局变量、初始化过的静态局部变量 bss 静态数据段 未初 ......
进程 语言 类型 day 06

C编程练习-五子棋升级版(键盘的上下左右键控制落子)

#include<stdio.h> #include<stdbool.h> #include<stdlib.h> #include<getch.h> char board[15][15]; //棋盘 char role = '@'; //角色 char key_x,key_y; //下子坐标 //初 ......
五子棋 升级版 上下 键盘

计算机系统基础PA1(2)

写在前面 PA1的内容还是挺多的,只用一个博客写会看起来很臃肿,于是用这篇博客写接下的PA1 表达式求值 ......
计算机 基础 系统 PA1 PA

python网络编程Twisted02 Twisted基础和Reactor方法

python网络编程Twisted02 Twisted基础和Reactor方法 Twisted第三方文档:https://krondo.com/an-introduction-to-asynchronous-programming-and-twisted/Twisted官方文档:https://tw ......
Twisted 网络编程 Reactor 基础 方法

C编程练习-五子棋升级版(键盘上下左右控制落子)

#include<stdio.h>#include<stdbool.h>#include<stdlib.h>#include<getch.h> char board[15][15]; //棋盘char role = '@'; //角色char key_x,key_y; //下子坐标 //初始化棋盘v ......
五子棋 升级版 上下 键盘