goPHP

php7,go,python,java之「函数」

2020-03-02  本文已影响0人  木云先森

介绍4种语音的函数定义和特殊的注意事项。横向对比,便于理解。

php7的函数定义

php7新增了更加严格的函数声明的类型定义,php也在不断的发展过程中,越来越和java等语言看起来比较接近
1.首先看下严格模式的写法

function 方法名(参数类型 参数数据) :返回值类型{
      方法语句;
      return 返回值;
}

2.举例更直观

//函数定义
function arraySum(array $arr) :int{
  //此处不加强制类型转换也可,语音自身会做隐式转换
  return (int)($arr[0] + $arr[1])
}
//调用并打印
var_dump(arraySum([10,20]));
//结果
int(30)

3.因为php为弱类型语音,也可以把上述事例,改为下方的简单的模式

//函数定义
function arraySum($arr) {

  return $arr[0] + $arr[1];
}
//调用并打印
var_dump(arraySum([10,20]));
//结果
int(30)

4.个人感受,写了近5年的php代码,php语法简单,类型控制少,减少再此上的思考时间。但是,如果做经常中大型项目,建议采用严格模式,能够在代码层面看清楚每个函数的类型和状态。也会减少很多奇怪的异常。

go的函数定义

1.首先看看语法

func 方法名(类型 参数) 返回类型{
   //方法语句
   return 返回值
}

2.举例更直观

package main

import "fmt"
//入口函数
func main() {
    fmt.Print(arraySum(10,20))
}
//函数定义
func arraySum(x ,y int) int{
    return x + y
}
//执行结果
30

tip:go的语句结尾可以不写分号,这点和python很相似

3.go和php的有点很大的不同是,go支持函数多返回值(和python类似),举例更直观

package main

import "fmt"
//入口函数
func main() {
    fmt.Print(arraySum(10,20))
}
//函数定义
func arraySum(x ,y int) int{
    return x + y, x * y;
}
//执行结果
30 200

4.go相对应php,python为静态语言,但是在语法上,相对于C和JAVA,也是尽量做到简单易用。

python

1.首先看语法

def 函数名(参数):
    语句
    return 返回值

2.举例更直观

//函数定义
def my_sum(x,y):
    return x+y
//打印输出
print(my_sum(10,20))
//执行结果
30

tip:python的语法,相对于其他语言,也是做到了极减,省去了很多的重复的大括号,依靠格式来进行语句的聚合

3.python也是支持函数多返回值的,在写php代码的时候,因为不支持多返会值,一般会用数组等类型进行包装,相对于此种方式,少了一些便利

//函数定义
def my_sum(x,y):
    return x+y,x*y
//打印输出
print(my_sum(10,20))
//执行结果
(30, 200)

4.python是很典型的弱类型语言,语法简单灵活。而php同学,则是越来越像JAVA,当然在性能上,相对于以前的php5,也有一定的提升

java

1.首先看语法

修饰符 返回类型 方法名(类型 参数){
    语句;
    return 返回值;
}

2.举例更直观

public class demo {
    //入口
    public static void main(String[] args) {
        my test = new my();
        System.out.println(test.my_sum(10,20));
    }
}

class my{
    //函数定义
    public int my_sum(int x, int y){
        return x + y;
    }
}
//执行结果
30

tip:java相对于前几种,特殊点在于是,java是完全面向对象,要有类的概念作为大前体,所以函数也可以称为成员方法。所以需要最前面的访问修饰符。上例写了2个类,如果一个类做打印,方法定义为静态方法即可。
3.java作为传统的静态语音,其语法和特点,都算是比较传统的

上一篇 下一篇

猜你喜欢

热点阅读