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

湘西网站建设公司网站怎样做注册窗口

湘西网站建设公司,网站怎样做注册窗口,上海网站制作设计公司,网页设计制作网站论文目录 不同范式对比#xff1a; 1.面向对象编程 2.函数式编程 2.1函数基本语法 2.2函数和方法的区别 核心概念#xff1a; 2.3函数定义 2.4函数参数 2.5 函数至简原则 2.6.高阶函数 三.偏函数 四.柯里化函数 五.递归函数 递归函数注意点#xff1a; 六.控制抽象 1…目录 不同范式对比 1.面向对象编程 2.函数式编程 2.1函数基本语法 2.2函数和方法的区别 核心概念 2.3函数定义 2.4函数参数 2.5 函数至简原则 2.6.高阶函数 三.偏函数 四.柯里化函数 五.递归函数 递归函数注意点 六.控制抽象 1.值调用把计算后的值传递过去 2.名调用把代码传递过去 七.惰性加载 不同范式对比 面向过程按照步骤解决问题。面向对象分解对象、行为、属性通过对象关系以及行为调用解决问题。耦合低复用性高可维护性强。 面向对象和面向过程都是命令式编程但是函数式编程不关心具体运行过程而是关心数据之间的映射。纯粹的函数式编程语言中没有变量所有量都是常量计算过程就是不停的表达式求值的过程每一段程序都有返回值。不关心底层实现对人来说更好理解相对地编译器处理就比较复杂。 函数式编程优点编程效率高函数式编程的不可变性对于函数特定输入输出是特定的与环境上下文等无关。函数式编程无副作用利于并行处理所以Scala特别利于应用于大数据处理比如SparkKafka框架。 1.面向对象编程 解决问题分解对象行为属性然后通过对象的关系以及行为的调用来解决问题 对象的本质对数据和行为的一个封装 2.函数式编程 解决问题时将问题分解成一个个步骤将每个步骤进行封装函数通过调用这些封装好的步骤解决问题。 函数的本质函数可以当作一个值进行传递 2.1函数基本语法 实例需求定义一个函数实现将传入的名称打印出来。 object TestFunction {def main(args: Array[String]): Unit {// 1函数定义def f(arg: String): Unit {println(arg) }// 2函数调用 // 函数名参数f(hello world) } } 2.2函数和方法的区别 核心概念 1.为完成某一功能的程序语句的集合称之为函数                  2.类中的函数称之为方法 Scala 语言可以在任何的语法结构中声明任何的语法 函数没有重载和重写的概念方法可以进行重载和重写 Scala 中函数可以嵌套定义 2.3函数定义 函数 1无参无返回值 函数 2无参有返回值 函数 3有参无返回值 函数 4有参有返回值 函数 5多参无返回值 函数 6多参有返回值 实例 2.4函数参数 可变参数类似于Java使用数组包装。可变参数可以当作数组来用 如果参数列表中存在多个参数那么可变参数一般放置在最后 参数默认值一般将有默认值的参数放置在参数列表的后面 带名称传参 不给名称的就是按顺序赋值 调用时带名参数必须位于实参列表末尾 和默认参数一起使用会很方便比如有多个默认参数但只想覆盖其中一个 2.5 函数至简原则 能省则省。最后一行代码会作为返回值可以省略return。函数体只有一行代码的话可以省略花括号。如果返回值类型能够自动推断那么可以省略。如果函数体中用return做返回那么返回值类型必须指定。如果声明返回Unit那么函数体中使用return返回的值也不起作用。如果期望是无返回值类型那么可以省略。这时候没有返回值函数也可以叫做过程。【2.13.0已废弃能编过不过会提示。】无参函数如果声明时没有加()调用时可以省略()。【如果声明时有()调用也可以省略不过2.13.3废弃了。】不关心函数名称时函数名称和def也可以省略去掉返回值类型将修改为定义为匿名函数。2.6.高阶函数 三种形式函数作为值传递、函数作为参数、函数作为返回值。 作为值传递经过赋值之后在底层变成一个lambda对象。 实例1模拟 Map 映射、Filter 过滤、Reduce 聚合 三.偏函数 1.在对符合某个条件而不是所有情况进行逻辑操作时使用偏函数是一 个不错的选择 2.将包在大括号内的一组case语句封装为函数我们称之为偏函数它只 对会作用于指定类型的参数或指定范围值的参数实施计算超出范围的 值会忽略未必会忽略这取决于你打算怎样处理 3.偏函数在Scala中是一个特质PartialFunction 偏函数总结 使用构建特质的实现类(使用的方式是PartialFunction的匿名子类) PartialFunction 是个特质(看源码) 构建偏函数时参数形式 [Any, Int]是泛型第一个表示参数类型第二个表示 返回参数 当使用偏函数时会遍历集合的所有元素编译器执行流程时先执行isDefinedAt()如果为 true ,就会执行 apply, 构建一个新的Int 对象返回 执行isDefinedAt() 为false 就过滤掉这个元素即不构建新的Int对象. map函数不支持偏函数因为map底层的机制就是所有循环遍历无法过滤处理 原来集合 的元素 collect函数支持偏函数 实例1对malefemale男女,hello进行转义string转换为int 四.柯里化函数 柯里化(Currying)指的是将原来接受多个参数的函数变成新的接受一个参数的函数的多个参数列表的过程。 基本介绍 函数编程中接受多个参数的函数都可以转化为接受单个参数的函数这个转 化过程就叫 柯里化 柯里化就是证明了函数只需要一个参数而已。其实我们刚才的学习过程中已 经涉及到了 柯里化操作。 不用设立柯里化存在的意义这样的命题。柯里化就是以函数为主体这种思想发展的必然产 生的结果。(即柯里化是面向函数思想的必然产生结果) 五.递归函数 一个函数/方法在函数/方法体内又调用了本身我们称之为递归调用 递归函数注意点 方法调用自身。递归要有结束逻辑。调用自身时传递参数要有规律。scala中递归定义函数必须声明返回值类型因为无法通过推导获得。纯函数式语言比如Haskell连循环都没有很多操作都需要通过递归来做性能比较依赖尾递归优化。 实例 六.控制抽象 1.值调用把计算后的值传递过去 按值传递参数计算值后再传递。多数语言中一般函数调用都是这个方式C还存在引用传递。 2.名调用把代码传递过去 按名称传递参数直接用实参替换函数中使用形参的地方。能想到的只有C语言中的带参宏函数其实并不是函数调用预处理时直接替换。 java只有值调用scala既有值调用又有名调用 七.惰性加载 当函数返回值被声明为 lazy 时函数的执行将被推迟直到我们首次对此取值该函 数才会执行。这种函数我们称之为惰性函数。
http://www.dnsts.com.cn/news/119519.html

相关文章:

  • 网站建设如何设计数据库昆明网站seo技术厂家
  • 广东建设网 工程信息网站包装公司网站模板下载
  • 网站建设合同示范文本上海做网站cnsosu
  • 造作网站模版内部劵淘网站怎么做
  • django网站开发案例毕设网站
  • dede 管理多个网站邯郸百度推广公司
  • 怎样从用户体现提高网站的搜索引擎信任度互联网创业项目拒绝割韭菜
  • 郴州建设局门户网站网站改版 更换服务器 排名丢失
  • 网站哪个公司做的台州椒江网站建设
  • 镇江网站建设平台网站建设得步骤
  • 网站设计公司网站设计公司网站制作教程ppt
  • 养殖场在哪个网站做环评备案wordpress自定义文章类型输出数量
  • jsp网站建设 书籍缔客网络上海响应式网站建设
  • 网站建设文翻译工作室东莞的网站建设公司哪家好
  • 石家庄建设网站哪家好广平手机网站建设
  • 网站建设公司济宁装饰设计培训
  • 洛阳建设信息网站建手机网站一年费用
  • 肃宁网站建设价格页游大全
  • 广州网站优化效果短网址统计
  • wordpress多语言网站四川网站建设设计公司
  • 织梦网站地图制作教程海南省海口市龙华区
  • 大型门户网站建设哪专业python做网站安全性
  • 网站建设销售好做嘛要怎样注册公司
  • 做网站代理怎么赚钱棋牌源码
  • 兰州网站设计哪个平台好赣州小程序开发公司
  • 满洲里建设局网站首页免费建微网站平台
  • 合肥网站设计goz中国建设造价工程协会网站
  • 邢台提供网站设计公司哪家专业广州市新闻发布会
  • 做机械外贸什么网站好如何建设和优化一个网站
  • wordpress电商网站html5的优点