• 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

  • 相关阅读:
    查漏补缺:2020年搞定SpringCloud面试(含答案和思维导图)
    如何在半小时搭建一个简单的日志分析平台?
    Flutter | 状态管理特别篇——Provide
    线程池是怎样工作的
    神奇的 SQL 之 联表细节 → MySQL JOIN 的执行过程
    github设置添加ssh
    pytorch中torch.cat(),torch.chunk(),torch.split()函数的使用方法
    八年以后,我选择了创业
    vue源码解读(一)Observer/Dep/Watcher是如何实现数据绑定的
    Ubuntu18.04安装Pytorch
  • 原文地址:https://www.cnblogs.com/ShoneSharp/p/ShoneSharp-7.html
Copyright © 2020-2023  润新知