运算符

算术运算符

双目运算符

运算符

名称

示例

说明

^

乘方 3^2  

+

i_age+1  

-

i_age - 1  

*

l_w*3  

/

i_w/3  

=

赋值 i_w=34  

单目运算符

-

求反 -i_x 结果为i_x的相反数

++

增1 i_age ++  

--

减1 l_w --  

关系运算符

=

等于 i_x=i_y 可比较数值及字符型数据

>

大于 i_x>i_y

<

小于 i_<i_y

>=

大于等于 l_x>=l_y

<=

小于等于 s_x<=s_y

<>

不等于 s_x<>s_y

组合运算符

^=

乘方等于 i_x^=i_y i_x=i_x ^ i_y

+=

加等于 i_x+=i_y i_x=i_x + i_y

-=

减等于 i_x-=i_y i_x=i_x - i_y

*=

乘等于 i_x*=i_y i_x=i_x * i_y

/=

除等于 i_x/=i_y i_x=i_x / i_y

串运算符

String s_a1="hello ",s_a2="world"

String s_a

s_a=s_a1+s_a2

连接运算符

NOT

NOT b_z b_z为真则结果为假

AND

b_a AND b_c b_a和b_c都为真时结果才为真

OR

b_a OR b_c b_a和b_c只要有一个为真,结果即为真

括号

用来改变运算的先后次序

例:1+2*3 与 (1+2)*3

运算符之间的优先关

/\
|

括号()
乘方 ^
乘* 除/
加+ 减-
字符串连接+
逻辑比较
赋值=、+=、-=、*=、/=、^=
逻辑非
逻辑与
逻辑或

 
 
 

函数定义和作用域

函数是程序中特定的功能模块,通常应用程序的开发工具会把经常使用的功能写成函数,提供给程序设计人员使用。PowerBuilder中最常用的是全局函数和窗口函数,还有菜单函数、用户对象函数及外部函数。

使用函数最重要的是了解函数的参数个数及类型,还有函数的返回值类型及意义。参数的作用是向函数传入数据,返回值的作用是传回函数的计算结果或运行状态。(参数也可用于从函数内部得到计算的结果。)

函数的作用域

函数和变量一样,都有一定的作用域。全局函数的作用域和全局变量的作用域一样,在整个应用程序的任何地方都能通用,是等级最高、作用最广的函数。窗口函数仅仅允许在该窗口的事件和函数脚本中进行通用。菜单函数要在菜单的脚本编辑状态下编辑。用户对象函数既有全局对象函数的特点,也有类似窗口函数的特点。外部函数则区分为全局外部函数和在对象内部定义的局部外部函数。除了全局函数和外部函数,对象函数(如窗口函数、菜单函数、用户对象函数等)都有一个权限的问题。

Public:公众权限,其作用域限制最低,使用非常自由。

Private:私有权限,仅能在当前对象范围内使用。

Protect:保护权限。介于Public和Private之间的一个作用域,所有以该对象为父对象继承出去的子对象都可以调用Protect权限的对象函数,即这个对象家族都可以共享的函数。

3、函数的定义方法

一般的函数定义都会发生参数的传递和参数的返回,最典型的函数定义方法如下:

Return ArgumentName FunctionName(argument1,argument2,......)

结构

结构体的作用是把内容相关的类型不同的数据集中管理。例如大多软件都有开发单位、版本、单位地址、联系方法、开发时间、版权所有时间等相关信息,这些信息如果各用单独的变量来保存显得杂乱,把它们统一放到结构体类型的一个变量中既便于管理,又提高了程序的可读性。

结构实际是一个新的数据类型,需要通过一个变量将其实例化。

PowerScript表达式的更多相关文章

  1. powerScript脚本

    一.powerScript的语法 1.0变量的命名及使用 powerscript的标识符(变量名称)必须以字母或下划线开头,其它的字符可以是下划线(_).短横线(-).美元符号($).号码符号(#) ...

  2. 【.net 深呼吸】细说CodeDom(2):表达式、语句

    在上一篇文章中,老周厚着脸皮给大伙介绍了代码文档的基本结构,以及一些代码对象与CodeDom类型的对应关系. 在评论中老周看到有朋友提到了 Emit,那老周就顺便提一下.严格上说,Emit并不是针对代 ...

  3. 你知道C#中的Lambda表达式的演化过程吗?

    那得从很久很久以前说起了,记得那个时候... 懵懂的记得从前有个叫委托的东西是那么的高深难懂. 委托的使用 例一: 什么是委托? 个人理解:用来传递方法的类型.(用来传递数字的类型有int.float ...

  4. 再讲IQueryable<T>,揭开表达式树的神秘面纱

    接上篇<先说IEnumerable,我们每天用的foreach你真的懂它吗?> 最近园子里定制自己的orm那是一个风生水起,感觉不整个自己的orm都不好意思继续混博客园了(开个玩笑).那么 ...

  5. Linq表达式、Lambda表达式你更喜欢哪个?

    什么是Linq表达式?什么是Lambda表达式? 如图: 由此可见Linq表达式和Lambda表达式并没有什么可比性. 那与Lambda表达式相关的整条语句称作什么呢?在微软并没有给出官方的命名,在& ...

  6. 背后的故事之 - 快乐的Lambda表达式(一)

    快乐的Lambda表达式(二) 自从Lambda随.NET Framework3.5出现在.NET开发者眼前以来,它已经给我们带来了太多的欣喜.它优雅,对开发者更友好,能提高开发效率,天啊!它还有可能 ...

  7. Kotlin的Lambda表达式以及它们怎样简化Android开发(KAD 07)

    作者:Antonio Leiva 时间:Jan 5, 2017 原文链接:https://antonioleiva.com/lambdas-kotlin/ 由于Lambda表达式允许更简单的方式建模式 ...

  8. SQL Server-表表达式基础回顾(二十四)

    前言 从这一节开始我们开始进入表表达式章节的学习,Microsoft SQL Server支持4种类型的表表达式:派生表.公用表表达式(CTE).视图.内嵌表值函数(TVF).简短的内容,深入的理解, ...

  9. 立即执行函数表达式(IIFE)

    原文地址:benalman.com/news/2010/11/immediately-invoked-function-expression/ 译者:nzbin 也许你还没有注意到,我是一个对术语比较 ...

随机推荐

  1. 使用docker加载已有镜像安装Hyperledger Fabric v1.1.0

    背景 每次在新的服务器上安装Hyperledger Fabric网络时,通过fabric官方提供的脚本安装时,需要从网络上down下近10G的fabric相关镜像,这个过程是漫长及痛苦的,有时因网络问 ...

  2. Realm 处理List<String> 问题 Type parameter 'java.lang.String' is not within its bound; should implement 'io.realm.RealmModel

    public class InitAppBean extends RealmObject { private String sapling; private String logistics; pri ...

  3. 前端使用nginx 达到前后分离的开发目的

    前言: 由于现在要开发一套基于python 的日志分析系统,设计到日志收集,分析,可视化输出,所以我使用前后端分离的做法.记录学习的过程: 00x1: 下载配置nginx:在E盘创建Service 目 ...

  4. GPIO输入输出各种模式(推挽、开漏、准双向端口)详解

    转自:https://blog.csdn.net/techexchangeischeap/article/details/72569999 概述 能将处理器的GPIO(General Purpose ...

  5. JS 实现右下角弹窗

    <!DOCTYPE HTML> <head> <title>JS实现右下角弹窗</title> <meta http-equiv="co ...

  6. redis 安装与使用

    到git 官网上下载redis: DownLoad,选择.zip 压缩包 2. 下载后,对zip 包进行解压,解压后如下: 3. 配置并安装redis, 打开window dos 窗口,将目录切换到解 ...

  7. Ubuntu离线安装docker

    1.先安装依赖libltdl7_2.4.6-0.1_amd64.deb 下载链接http://archive.ubuntu.com/ubuntu/pool/main/libt/libtool/libl ...

  8. gp工具的许可

    还是要在代码里许可 static class Program { [STAThread] static void Main() { ESRI.ArcGIS.RuntimeManager.Bind(ES ...

  9. MYSQL临时表使用方法

    当工作在非常大的表上时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个临时表可能更快些,然后在这些表运行查询. ...

  10. 关于Ajax异步请求(实时刷新)

    1.需求:想要做成动态实时刷新获取数据库的值 2.例子 3.代码逻辑: <script type="text/javascript"> var Seconds=1000 ...