zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    自定义View的ToolBar布局报错Error:(2) No resource identifier found for attribute 'context' in package 'c
    在学git之主分支 branch
    获取发布版SHA1
    关于开启线程与UI的操作
    播放音频和视频(VideoView控件)
    通知栏Notification的应用
    Android 真机调式 Installation failed with message 远程主机强迫关闭了一个现有的连接。. It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing. WA
    运行程序申请危险权限
    mysql乐观锁总结和实践
    Nginx配置文件nginx.conf中文详解
  • 原文地址:https://www.cnblogs.com/ShoneSharp/p/ShoneSharp-7.html
Copyright © 2011-2022 走看看