Why does implicit conversion happen from 'char' to 'string' when concatenating?
3 ビュー (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2022 年 12 月 1 日
回答済み: MathWorks Support Team
2022 年 12 月 1 日
Concatenating char arrays results in a new char array, as expected:
>> ['a', 'b', 'c']
ans =
'abc'
However, if any element of this array is a string, there is an implicit conversion of all the char arrays to strings, and the behavior is quite different:
>> ['a', "b", 'c']
ans =
1×3 string array
"a" "b" "c"
What is the reason for this?
採用された回答
MathWorks Support Team
2022 年 12 月 1 日
In concatenation operations, the dominant object determines the class of the resulting array, according to the following documentation:
https://www.mathworks.com/help/matlab/matlab_oop/implicit-class-conversion.html#bvo4poc
Therefore, when the array contains both 'char' and 'string', the concatenation results in a 'string' array.
The following documentation includes other related examples to demonstrate this idea:
https://www.mathworks.com/help/matlab/matlab_prog/concatenation-examples.html
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Characters and Strings についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!