当前位置: 首页 > news >正文

编程语言「描述符」漫谈——以C++与Rust为例的行为声明与类型描述

编程语言中有三种描述符:

  • 声明符: 表示一种动作, 比如创建变量, 定义函数等等;
  • 说明符: 也就是类型说明符, 表示一种数据类型;
  • 修饰符: 表示动作或类型的属性, 例如不可变……

swift语言就是严格遵循这些描述符的, 例如, @objc是修饰符 , 表示编译成OC兼容函数, func 是声明符, 表示声明一个函数, Int是说明符, 表示整数类型.

但是在c++中, 声明符往往是隐含的、省略的, 例如, 定义函数时:

int32_t  Sum(int32_t a, int32_t b){return a+b;
}

这里并不需要用“func”来告诉读者, 这里要进行一个函数的声明.
又如, 定义变量时,

const int a;

这里的修饰符const和说明符int是混在一起用的. 这里其实缺失了一个声明符,来告诉读者这句代码是在声明一个变量.

但其他语言, 例如rust语言中, 就会用「let」声明符, 表示当前语句是在进行变量声明.
例如, 下述语句表示定义一个可变变量(mut表示可变的, rust中默认是不可变的).

let mut val1: i32 = 1; 

rust语言中的函数声明, 则首先要用一个「fn」表示声明的是一个函数, 参数的类型则在参数名的后面, 由一个冒号+类型表示, 例如下式:

fn sum(a: i32, b:i32)->i32{a+b
}

看起来也是非常一目了然的.

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Go - mongodb - bson / schema】
  • mcasttest-tool组播检测工具
  • linux shell(中)
  • Flink中三种模式:YARN Session 模式、YARN Per-Job 模式和 YARN Application 模式提交任务命令
  • XML 和 SimpleXML 入门教程
  • 某视频平台关键 so vm 解释器还原
  • 解析大数据分析行业的现状与前景:全球视角下的中国力量
  • Windows 环境 batch 脚本实现 PG 数据库恢复功能
  • 从代码层面熟悉UniAD,开始学习了解端到端整体架构
  • 【软件测试】--接口测试
  • WordPress主题追格企业官网主题免费开源版V1.1.6
  • 【剑指offer】
  • Swift学习入门,新手小白看过来
  • package:mine android studio新过滤规则及其用法 Filter使用技巧
  • 【AI大模型】-- 应用部署
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • AWS实战 - 利用IAM对S3做访问控制
  • CAP 一致性协议及应用解析
  • cookie和session
  • CSS 三角实现
  • If…else
  • java8-模拟hadoop
  • js 实现textarea输入字数提示
  • js写一个简单的选项卡
  • Markdown 语法简单说明
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 优化 Vue 项目编译文件大小
  • 怎么将电脑中的声音录制成WAV格式
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • ​2020 年大前端技术趋势解读
  • ​iOS实时查看App运行日志
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • # linux 中使用 visudo 命令,怎么保存退出?
  • #70结构体案例1(导师,学生,成绩)
  • #android不同版本废弃api,新api。
  • #考研#计算机文化知识1(局域网及网络互联)
  • (Java数据结构)ArrayList
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (vue)页面文件上传获取:action地址
  • (超详细)语音信号处理之特征提取
  • (多级缓存)缓存同步
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (附源码)计算机毕业设计大学生兼职系统
  • (算法)区间调度问题
  • (五)c52学习之旅-静态数码管
  • (一)Thymeleaf用法——Thymeleaf简介
  • ../depcomp: line 571: exec: g++: not found
  • .NET 服务 ServiceController