Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体

0
votes
answers
楼主
48 views
+10

我不明白「push」返回的值

0
use strict; 
use warnings; 

sub maximum_value { 

    my @array = @_; 
    my @array1 = shift(@_); 
    my @array2 = push(@_, 0); 

    print "@array
"; 
    print "@array1
"; 
    print "@array2
"; 

    my $i = 0; 

    foreach (@array) { 

     if ($i < $_) { 
      $i = $_; 
     } 
    } 

    print "
Max Value is $i"; 
} 

maximum_value(10, 15, 11, 13); 

這是一個Perl腳本。我將這些值傳遞給子程序並將它們存儲在@_中。爲什麼@array2評估爲4?我不明白「push」返回的值

+2

你已經有了一個很好的答案,但是我可能會問你期望在@ @ array2中? – PerlDuck

沙发
0
8
perldoc -f push

狀態:

返回下列完成的推數組中元素的數目。

  1. @_開始有四個要素,因爲你有4個參數調用你的子。
  2. shift@_數組中的第一個元素。 shift返回已移除的元素。 @_數組現在包含3個元素。
  3. push零到末尾的@_數組,其中又包含4個元素。 push返回元素的數量,並將其分配給@array2
discard