编程语言 发展史 语言 计算机
面向对象编程的 SOLID 原则 - 里氏替换原则
里氏替换原则 里氏替换原则描述的是子类应该能替换为它的基类。 意思是,给定 class B 是 class A 的子类,在预期传入 class A 的对象的任何方法传入 class B 的对象,方法都不应该有异常。 这是一个预期的行为,因为继承假定子类继承了父类的一切。子类可以扩展行为但不会收窄。 ......
面向对象编程的 SOLID 原则 - 接口隔离原则
接口隔离原则 隔离意味着保持独立,接口隔离原则是关于接口的独立。 该原则描述了很多客户端特定的接口优于一个多用途接口。客户端不应该强制实现他们不需要的函数。 这是一个简单的原则,很好理解和实践,直接看例子。 public interface ParkingLot { void parkCar(); ......
面向对象编程的 SOLID 原则 - 依赖倒置原则
依赖倒置原则 依赖倒置原则描述的是我们的 class 应该依赖接口和抽象类而不是具体的类和函数。 在这篇文章(2000)里,Bob 大叔如下总结该原则: “如果 OCP 声明了 OO 体系结构的目标,那么 DIP 则声明了主要机制”。 这两个原则的确息息相关,我们在讨论开闭原则之前也要用到这一模式。 ......
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 + ......
面向对象编程的 SOLID 原则 - 开闭原则
开闭原则 开闭原则要求“class 应该对扩展开放对修改关闭”。 修改意味着修改存在 class 的代码,扩展意味着添加新的功能。 这个原则想要表达的是:我们应该能在不动 class 已经存在代码的前提下添加新的功能。这是因为当我们修改存在的代码时,我们就面临着创建潜在 bug 的风险。因此,如果可 ......
面向对象编程的 SOLID 原则
SOLID 原则是面向对象 class 设计的五条原则。他们是设计 class 结构时应该遵守的准则和最佳实践。 通常,这五个原则可以帮助我们了解设计模式和软件架构。这是每个开发人员都应该了解的主题。 这篇文章介绍了在项目中使用 SOLID 原则的细节。 首先我们先看一下 SOLID 原则的历史。然 ......
什么是编程领域的 DSL - Domain Specific Language
在编程领域中,Domain Specific Language(DSL)是一种特定于特定问题领域的计算机语言,设计用于解决该领域的特定类型的问题。DSL的设计目标通常包括提高生产力,使非程序员可以使用,以及提供特定类型的语言构造。DSL与通用编程语言(GPL)相对,GPL如Python、Java等, ......
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(); //开始 ......
【go语言】2.3.2 error 接口
在 Go 语言中,`error` 是一个内置的接口类型,用于表示错误情况。`error` 接口的定义如下: ```go type error interface { Error() string } ``` 任何具有 `Error() string` 方法的类型都可以被视为实现了 `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| |这个作业的目标 ......
【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` 语句, ......
介绍自动工作流程编程的几种常见方式
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 ......
初学C语言day06--进程影响及类型限定符
##### 进程映像: 程序:存储在磁盘上的可执行文件(二进制文件、脚本文件) 进程:正在系统中运行的程序 进程映像:进程的内存分布情况: text 代码段 存储二进制指令、常量,只读的,如果强行修改会产生段错误 data 数据段 初始化过的全局变量、初始化过的静态局部变量 bss 静态数据段 未初 ......
C编程练习-五子棋升级版(键盘的上下左右键控制落子)
#include<stdio.h> #include<stdbool.h> #include<stdlib.h> #include<getch.h> char board[15][15]; //棋盘 char role = '@'; //角色 char key_x,key_y; //下子坐标 //初 ......
python网络编程Twisted02 Twisted基础和Reactor方法
python网络编程Twisted02 Twisted基础和Reactor方法 Twisted第三方文档:https://krondo.com/an-introduction-to-asynchronous-programming-and-twisted/Twisted官方文档:https://tw ......
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 ......