ShoneSharp语言(S#)的设计和使用介绍系列(7)— 布尔Bool及对象Object
ShoneSharp语言(S#)的设计和使用介绍
系列(7)— 布尔Bool及对象Object
作者:Shone
声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp。
摘要: 布尔值(对应C#的bool)表示是/否两种状态,对应关键字true、false。对象(对应C#的object)表示任意对象,是所有类型的基类型,关键字null表示空对象。Object 在S#中有大量的使用,用的好了熟了会让你领悟:看山是山;看山不是山;看山还是山。
软件: S#语言编辑解析运行器(ShoneSharp.13.6.exe),运行环境.NET4.0,单EXE直接运行,绿色软件无副作用。网盘链接https://pan.baidu.com/s/1nv1hmJn
写博客还是蛮辛苦的,所以请大家再坚持一下,今天把布尔Bool及对象Object这两个类型介绍完后,后面将进入S#比较有特色的介绍,这里预告一下,看能不能多吸引点人气:
系列(7) — 最炫“公式”风
系列(8) — 一等公民“函数“爱炫巧
系列(9) — 富家子弟“语句“不炫富
系列(10)— “类”披炫服靓妆化成“表”
一、布尔Bool
布尔(对应C#的bool)表示是/否两种状态,S#为之预留了两个关键字true、false。当然你也可以输入True/False,或是/否。
布尔值一般专门进行逻辑判断使用,几乎所有现代语言都支持该类型。
二、对象Object
对象(对应C#的object)表示任意对象,是所有类型的基类型,S#为之预留了一个关键字null,表示空对象。
编程语言素来有关于强类型与弱类型之优劣的争辩,其根源就在于Object这种类型(C++中是指针)神一般的存在。个人对强类型与弱类型意见取中庸之道,认为都有必要支持,各有利弊之处。
Object 在S#中有大量的使用,用的好了熟了,简直可以让你达到参禅之境界:看山是山,看水是水;看山不是山,看水不是水;看山还是山,看水还是水。
二话不说上S#代码:
{
1 + 2 ,
1 + [ 10 , 20 ] ,
[ 1 , 2 ] + 10 ,
[ 10 , 20 , 30 ] + [ 1 , 2 ] ,
cos( 30 ) ,
cos( [ 10 , 20 , 30 ] ) ,
cos( { 10 , [ 20 , 30 ] , 40 } ) ,
cos( {
a = 10 ,
b = 20 ,
c = [ 30 , 40 ] ,
d = { 50 , 60 } ,
f = { m = 90 }
} )
}
//计算结果:
{
3 ,
[ 11 , 21 ] ,
[ 11 , 12 ] ,
[ 11 , 22 , 32 ] ,
0.86602540378443871 ,
[
0.984807753012208 ,
0.93969262078590843 ,
0.86602540378443871
] ,
{
0.984807753012208 ,
[
0.93969262078590843 ,
0.86602540378443871
] ,
0.766044443118978
} ,
{
0.984807753012208 ,
0.93969262078590843 ,
[
0.86602540378443871 ,
0.766044443118978
] ,
{ 0.64278760968653936 , 0.5 } ,
{ 0 }
}
}
下面很多算符、函数、属性以及方法接受的参数就是Object,表明它们可以接受多种数据类型,具体可参见成员说明。
三、常量
Bool False
说明:否
输入:False
Bool True
说明:是
输入:True
Object Null
说明:空值
输入:Null
四、单目算符
! Object → Object
说明:对布尔值取反
输入:!true
求值:False
- Object → Object
说明:对象取负
输入:-10
~ Object → Object
说明:对数组、列表反转
输入:~[1,2,3]
求值:[3, 2, 1]
五、双目算符
Object != Object → Bool
说明:判断两个对象值是否完全不等
输入:5!=10
求值:True
Object ?? Object → Object
说明:非空取值
输入:null??10
求值:10
Object < Object → Object
说明:判断是否小于
输入:5<10
求值:True
Object <= Object → Object
说明:判断是否小于或等于
输入:5<=10
求值:True
Object == Object → Bool
说明:判断两个对象值是否完全相等
输入:5==10
求值:False
Object > Object → Object
说明:判断是否大于
输入:5>10
求值:False
Object >= Object → Object
说明:判断是否大于或等于
输入:5>=10
求值:False
Object % Object → Object
说明:对象相余
输入:10%3
求值:1
Object && Object → Object
说明:布尔值相与
输入:true && false
求值:False
Object & Object → Object
说明:连插数组
输入:[1,2] & [10,20]
求值:[1, 10, 20, 2]
Object * Object → Object
说明:对象相乘
输入:5*10
求值:50
Object / Object → Object
说明:对象相除
输入:10/3
求值:3.3333333333333335
Object ^ Object → Object
说明:对象乘方
输入:5^3
求值:125
Object - Object → Object
说明:对象相减
输入:5-10
求值:-5
Object | Object → Object
说明:交插数组
输入:[1,2] | [10,20]
求值:[1, 10, 2, 20]
Object || Object → Object
说明:布尔值相或
输入:true || false
求值:True
Object + Object → Object
说明:对象相加
输入:5+10
求值:15
六、其他符号
Object[Double:Double] → Object
说明:获取子元素数组
输入:[10,20,30,40][1:2]
求值:[20, 30]
Object[Object|Object[],...] → Object
说明:获取子元素
输入:[10,20,30][1]
求值:20
七、函数
Bool assert(bool arg,...)
说明:断言系列布尔值(true正常,false发生错误)
输入:assert(true)
求值:True
Object abs(Object obj)
说明:求绝对值
输入:abs(-100)
求值:100
Object acos(Object obj)
说明:求反余弦角度值
输入:acos(0.5)
求值:60
Object acosh(Object obj)
说明:求反双曲余弦弧度值
输入:acosh(1.5)
求值:0.96242365011920694
Object actg(Object obj)
说明:求反反切角度值
输入:actg(1)
求值:45
Object actgh(Object obj)
说明:求反双曲反切弧度值
输入:actgh(1.5)
求值:0.80471895621705014
Object among(Object t, Double d1, Double d2)
说明:求[d1,d2]区间参量t的线性插值
输入:among(0,8,0.25)
求值:8
Object asin(Object obj)
说明:求反正弦角度值
输入:asin(0.5)
求值:30
Object asinh(Object obj)
说明:求反双曲正弦弧度值
输入:asinh(0.5)
求值:0.48121182505960347
Object atg(Object obj)
说明:求反正切角度值
输入:atg(1)
求值:45
Object atgh(Object obj)
说明:求反双曲正切弧度值
输入:atgh(0.5)
求值:0.54930614433405489
Object ceil(Object obj)
说明:求上取整值
输入:ceil(9.8)
求值:10
Object ceil(Object obj, Double d)
说明:求按步长上取整值
输入:ceil(10.4,0.5)
求值:10.5
Object cos(Object obj)
说明:求角度余弦值
输入:cos(60)
求值:0.5
Object cosh(Object obj)
说明:求弧度双曲余弦值
输入:cosh(0.5)
求值:1.1276259652063807
Object ctg(Object obj)
说明:求角度反切值
输入:ctg(45)
求值:1
Object ctgh(Object obj)
说明:求弧度双曲反切值
输入:ctgh(0.5)
求值:2.1639534137386529
Object exp(Object obj)
说明:求自然幂值
输入:exp(10)
求值:22026.465794806718
Object floor(Object obj)
说明:求下取整值
输入:floor(9.4)
求值:9
Object floor(Object obj, Double d)
说明:求按步长下取整值
输入:floor(10.4,0.5)
求值:10
Object lg(Object obj)
说明:求10为底对数值
输入:lg(10)
求值:1
Object ln(Object obj)
说明:求自然对数值
输入:ln(10)
求值:2.3025850929940459
Object log(Object obj, Double newBase)
说明:求指定底对数值
输入:log(10,2)
求值:3.3219280948873626
Object param(Object d, Double d1, Double d2)
说明:求d对应[d1,d2]区间的参量
输入:param(4,0,8)
求值:0.5
Object round(Object obj)
说明:求四舍五入取整值
输入:round(10.5)
求值:11
Object round(Object obj, Double d)
说明:求按步长四舍五入取整值
输入:round(10.4,0.5)
求值:10.5
Object sign(Object obj)
说明:求符号值
输入:sign(-10)
求值:-1
Object sin(Object obj)
说明:求角度正弦值
输入:sin(30)
求值:0.5
Object sinh(Object obj)
说明:求弧度双曲正弦值
输入:sinh(0.5)
求值:0.52109530549374738
Object sqrt(Object obj)
说明:求平方根值
输入:sqrt(10)
求值:3.1622776601683795
Object tg(Object obj)
说明:求角度正切值
输入:tg(45)
求值:1
Object tgh(Object obj)
说明:求弧度双曲正切值
输入:tgh(0.5)
求值:0.46211715726000974
Object trunc(Object obj)
说明:求截取整值
输入:trunc(9.5)
求值:9
Object trunc(Object obj, Double d)
说明:求按步长截取整值
输入:trunc(10.4,0.5)
求值:10
八、属性
String Object.OutCsv
说明:返回对应的Csv字符串
输入:x.OutCsv
String Object.OutStr
说明:返回对应的表示字符串
输入:x.OutStr
String Object.SpanStr
说明:转换为跨径字符串
输入:x.SpanStr
String Object.ToStr
说明:转换为对应字符串
输入:x.ToStr
String Object.TypeName
说明:类型名
输入:x.TypeName
String Object.XYShortStr
说明:对应的XY简化文本
输入:x.XYShortStr
String Object.XYStr
说明:对应的XY文本
输入:x.XYStr
String Object.XYZShortStr
说明:对应的XYZ简化文本
输入:x.XYZShortStr
String Object.XYZStr
说明:对应的XYZ文本
输入:x.XYZStr
最近三个章节按数据类型和成员分类进行介绍不会漏项,但是缺点是初学者看起来比较容易迷糊,内容也显得枯燥让人打瞌睡。不过总算结束了,有了这四块看不起眼的砖头,后面大家来看看可以砌成什么样的大楼。
声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp。
软件: S#语言编辑解析运行器(ShoneSharp.13.6.exe),运行环境.NET4.0,单EXE直接运行,绿色软件无副作用。网盘链接https://pan.baidu.com/s/1nv1hmJn
ShoneSharp语言(S#)的设计和使用介绍系列(7)— 布尔Bool及对象Object的更多相关文章
- ShoneSharp语言(S#)的设计和使用介绍系列(1)— 开篇
ShoneSharp语言(S#)的设计和使用介绍 系列(1)- 开篇 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. 一 ...
- ShoneSharp语言(S#)的设计和使用介绍系列(4)— 入门概述
ShoneSharp语言(S#)的设计和使用介绍 系列(4)- 入门概述 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. ...
- ShoneSharp语言(S#)的设计和使用介绍系列(3)— 修炼工具
ShoneSharp语言(S#)的设计和使用介绍 系列(3)- 修炼工具 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. ...
- ShoneSharp语言(S#)的设计和使用介绍系列(2)— 掀开盖头
ShoneSharp语言(S#)的设计和使用介绍 系列(2)- 掀开盖头 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. ...
- ShoneSharp语言(S#)的设计和使用介绍系列(11)—“类”披炫服靓妆化成“表”
ShoneSharp语言(S#)的设计和使用介绍 系列(11)—“类”披炫服靓妆化成“表” 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/Sh ...
- ShoneSharp语言(S#)的设计和使用介绍系列(10)— 富家子弟“语句“不炫富
ShoneSharp语言(S#)的设计和使用介绍 系列(10)— 富家子弟“语句“不炫富 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/Sho ...
- ShoneSharp语言(S#)的设计和使用介绍系列(9)— 一等公民“函数“爱炫巧
ShoneSharp语言(S#)的设计和使用介绍 系列(9)— 一等公民“函数“爱炫巧 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/Shon ...
- ShoneSharp语言(S#)的设计和使用介绍系列(8)— 最炫“公式”风
ShoneSharp语言(S#)的设计和使用介绍 系列(8)— 最炫“公式”风 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSha ...
- ShoneSharp语言(S#)的设计和使用介绍系列(6)— 字符串String
ShoneSharp语言(S#)的设计和使用介绍 系列(6)— 字符串String 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneS ...
随机推荐
- Web全栈AngularJS
百度云盘下载 AngularJS是人类首个大规模使用的MVC框架,能够帮助程序员将绝大部分精力集中在核心业务逻辑上,从而大幅提高开发效率. 阶段2:Controller Controller是Angu ...
- 【K8S】基于单Master节点安装K8S集群
写在前面 最近在研究K8S,今天就输出部分研究成果吧,后续也会持续更新. 集群规划 IP 主机名 节点 操作系统版本 192.168.175.101 binghe101 Master CentOS 8 ...
- 洛谷 2016 战略游戏(树形DP)
题目描述 Bob喜欢玩电脑游戏,特别是战略游戏.但是他经常无法找到快速玩过游戏的办法.现在他有个问题. 他要建立一个古城堡,城堡中的路形成一棵树.他要在这棵树的结点上放置最少数目的士兵,使得这些士兵能 ...
- 在Jetson TX2上安装caffe和PyCaffe
caffe是Nvidia TensorRT最支持的深度学习框架,因此在Jetson TX2上安装caffe很有必要.顺便说一句,下面的安装是支持python3的. 先决条件 在Jetson TX2上完 ...
- 白话typescript中的【extends】和【infer】(含vue3的UnwrapRef)
大家好,我是小雨小雨,致力于分享有趣的.实用的技术文章. 内容分为翻译和原创,如果有问题,欢迎随时评论或私信,希望和大家一起进步. 分享不易,希望能够得到大家的支持和关注. extends types ...
- python(安装)
1.下载安装包 https://www.python.org/downloads/ 2.安装 默认安装路径:C:\python3(建议自定义安装路径) 3.配置环境变量 [右键计算机]-->[属 ...
- 给springboot增加XSS跨站脚本攻击防护功能
XSS原理 xss攻击的原理是利用前后端校验不严格,用户将攻击代码植入到数据中提交到了后台,当这些数据在网页上被其他用户查看的时候触发攻击 举例:用户提交表单时把地址写成:山东省济南市<scri ...
- abp(net core)+easyui+efcore实现仓储管理系统——入库管理之十一(四十七)
abp(net core)+easyui+efcore实现仓储管理系统目录 abp(net core)+easyui+efcore实现仓储管理系统——ABP总体介绍(一) abp(net core)+ ...
- openCV从入门到放弃
与图像处理之间的关系,opencv的简介和使用定位 如题...因为偶然的机会需要用到图像处理,像我这么爱学习 并且动手能力又强的人怎么能没有心得笔记呢,哇哈哈哈.非要说的low逼点这玩意儿这玩意儿就是 ...
- 一些常见的pro文件配置
UI_DIR = ./ui #ui文件目录 TARGET = Test #最终生成目标名 DESTDIR = $$PWD/../test #目标生成目录,$$PWD表示当前目录下 DLLDESTDIR ...