课本是我正在努力的方向。目标是将考试块设置为true。
我尝试将liste-array中每本书的标题与我正在搜索的标题进行比较。如果找到该函数应该输出book-element,如果没有,则返回nil。
这就是我目前所拥有的:
<?php
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
// @codingStandardsIgnoreFile
namespace Custom\Sales\Model\Order\Pdf;
// use Magento\Eav\Model\Entity\Attribute as EntityAttribute;
// use Magento\Eav\Model\Entity\Attribute\AbstractAttribute;
// use Magento\Framework\DB\Select;
// use Magento\Framework\Model\AbstractModel;
// use Magento\Framework\App\Filesystem\DirectoryList;
// use Magento\Framework\DataObject;
/**
* Sales Order PDF abstract model
* @SuppressWarnings(PHPMD.ExcessiveClassComplexity)
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
*/
class AbstractPdf extends \Magento\Sales\Model\Order\Pdf\AbstractPdf
{
/**
* Insert logo to pdf page
*
* @param \Zend_Pdf_Page &$page
* @param null $store
* @return void
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
*/
protected function insertLogo(&$page, $store = null)
{
echo "override";die;
}
}
我没有任何错误,也不知道从哪里开始解决问题。
答案 0 :(得分:1)
在枚举期间遇到不匹配的书名时,您的代码无效,因为您int i = (byte) (+ ((char) (- ((int) (+ ((long) (- 1)))))));
-1 int
-1 long
-1 long
-1 int
--1 == +1 int
1 char
1 char
1 byte
1 int
。
正确的方法是在找到具有匹配标题的图书后立即返回,如果在找不到匹配的图书时返回return nil
枚举:
nil
(请注意,不需要为所有参数制作变量副本。)
如上所述,这可以简化为
func findBookWithTitle(_ title:String, inListe liste:[Book]) -> Book? {
for i in 0..<liste.count {
if liste[i].title == title {
return liste[i]
}
}
return nil
}
对数组使用first(where:)
方法(或更一般地,对序列使用)。